(FILECREATED "27-JUN-82 19:29:42" {PHYLUM}<LISPCORE>DEMO>RAIN.;5 5158
changes to: (FNS RAINDEMO)
previous date: "25-JUN-82 17:40:07" {PHYLUM}<LISPCORE>DEMO>RAIN.;4)
(* Copyright (c) 1982 by Xerox Corporation)
(PRETTYCOMPRINT RAINCOMS)
(RPAQQ RAINCOMS ((FNS BULL DRAWDROP DROPDROP RAINDEMO PUDDLE DNOTE DODNOTE DRAWBULL GETPT RANDPT)
(CURSORS DNOTE)
(VARS PUDDLE/PROPORTION (RAINWINDOW))))
(DEFINEQ
(BULL
[LAMBDA NIL (* rrb " 2-NOV-81 18:31")
(PROG ((W (CREATEW NIL "Bull's Eye"))
DS)
(SETQ DS (WINDOWPROP W (QUOTE DSP)))
LP (DRAWBULL (PROG1 (GETPT DS)
(AND (LASTMOUSESTATE BLUE)
(RETURN)))
(EXPT 2 (RAND 0 3))
DS)
(GO LP])
(DRAWDROP
[LAMBDA (PT DS) (* rrb " 2-NOV-81 18:25")
(PROG (WIDTH STEP)
(SETQ WIDTH (EXPT 2 (RAND 0 3)))
(SETQ STEP (IQUOTIENT (ITIMES (ADD1 WIDTH)
(RAND 2 7))
2))
(for I from 1 to (RAND 5 15) do (DRAWELLIPSE (fetch XCOORD of PT)
(fetch YCOORD of PT)
(FIX (FTIMES (ITIMES I STEP)
PUDDLE/PROPORTION))
(ITIMES I STEP)
0 WIDTH NIL DS])
(DROPDROP
[LAMBDA NIL (* rrb " 2-NOV-81 18:26")
(PROG ((W (CREATEW NIL "Puddle"))
DS)
(SETQ DS (WINDOWPROP W (QUOTE DSP)))
LP (DRAWDROP (PROG1 (GETPT DS)
(AND (LASTMOUSESTATE BLUE)
(RETURN)))
DS)
(GO LP])
(RAINDEMO
[LAMBDA NIL (* rrb "27-JUN-82 19:29")
(* draws circles in a window.)
(PROG NIL
[COND
((TYPENAMEP RAINWINDOW (QUOTE WINDOW)))
(T (SETQ RAINWINDOW
(CREATEW (create REGION
LEFT ← 0
BOTTOM ← 0
WIDTH ← 500
HEIGHT ← 500)
"Puddle"]
(CLEARW RAINWINDOW)
(for I from 1 to 20 do (DRAWBULL (RANDPT (DSPCLIPPINGREGION NIL RAINWINDOW))
(RAND 1 6)
RAINWINDOW])
(PUDDLE
[LAMBDA (W) (* rrb "25-JUN-82 17:37")
[OR W (SETQ W (COND
((TYPENAMEP POLYGONSWINDOW (QUOTE WINDOW))
POLYGONSWINDOW)
(T (SETQ POLYGONSWINDOW (CREATEW NIL "puddle"]
(CLEARW W)
(do (DRAWBULL (GETPOSITION W)
5 W])
(DNOTE
[LAMBDA (POS SCALE DS) (* rrb " 2-NOV-81 18:43")
(* draws a note like figure at POS)
(PROG [(X (fetch XCOORD of POS))
(Y (fetch YCOORD of POS))
[SIZE (FIX (FTIMES 50.0 (COND
((NUMBERP SCALE)
SCALE)
(T 1.0]
(DS (COND
((TYPENAMEP DS (QUOTE DISPLAYSTREAM))
DS)
((TYPENAMEP DS (QUOTE WINDOW))
(WINDOWPROP DS (QUOTE DSP)))
((NULL DS)
(WINDOWPROP TOPW (QUOTE DSP)))
(T (ERROR DS "NOT A DISPLAYSTREAM."]
(DRAWLINE X Y (IPLUS X SIZE)
Y 1 NIL DS)
(RELDRAWTO 0 SIZE 1 NIL DS)
(RELDRAWTO SIZE SIZE (IMAX (IQUOTIENT SIZE 5)
5)
NIL DS)
(RELDRAWTO 0 (IMINUS SIZE)
1 NIL DS])
(DODNOTE
[LAMBDA (W) (* rrb " 2-NOV-81 18:43")
(OR W (SETQ W TOPW))
(PROG ((DNOTESIZE .3)
(DNOTEMODE (QUOTE PAINT)))
(ADDMENU [SETQ SIZEMENU (BUTTONPANEL (QUOTE (.1 .3 .5 .7 .9 1.1 1.5]
NIL)
(do (DNOTE (GETPT (WINDOWPROP W (QUOTE DSP))
DNOTE)
DNOTESIZE W])
(DRAWBULL
[LAMBDA (PT WIDTH DS) (* rrb "31-MAY-82 10:21")
(PROG (STEP)
(SETQ STEP (IQUOTIENT (ITIMES (ADD1 WIDTH)
(RAND 3 5))
2))
(for I from 1 to (RAND 4 (ITIMES WIDTH 2)) do (DRAWCIRCLE (fetch XCOORD of PT)
(fetch YCOORD of PT)
(ITIMES I STEP)
WIDTH NIL DS)
(BLOCK])
(GETPT
[LAMBDA (DS CURSOR) (* rrb " 5-OCT-81 16:42")
(RESETFORM (CURSOR (COND
((type? CURSOR CURSOR)
CURSOR)
(T CROSSHAIRS)))
(UNTILMOUSESTATE RED)
(UNTILMOUSESTATE (NOT RED))
(create POSITION
XCOORD ←(LASTMOUSEX DS)
YCOORD ←(LASTMOUSEY DS])
(RANDPT
[LAMBDA (REGION) (* rrb "28-SEP-81 18:49")
(create POSITION
XCOORD ←(RAND (fetch LEFT of REGION)
(fetch RIGHT of REGION))
YCOORD ←(RAND (fetch BOTTOM of REGION)
(fetch TOP of REGION])
)
(RPAQ DNOTE (CURSORCREATE (READBITMAP) 0 0))
(16 16
"@@@@"
"@@B@"
"@@F@"
"@@N@"
"@AN@"
"@CN@"
"@GN@"
"@GJ@"
"@GB@"
"@FB@"
"@DB@"
"@D@@"
"@D@@"
"@D@@"
"@D@@"
"OL@@")
(RPAQQ PUDDLE/PROPORTION .5)
(RPAQQ RAINWINDOW NIL)
(DECLARE: DONTCOPY (PUTPROPS RAIN COPYRIGHT ("Xerox Corporation" 1982)))
(DECLARE: DONTCOPY
(FILEMAP (NIL (425 4837 (BULL 435 . 781) (DRAWDROP 783 . 1306) (DROPDROP 1308 . 1628) (RAINDEMO 1630
. 2227) (PUDDLE 2229 . 2545) (DNOTE 2547 . 3367) (DODNOTE 3369 . 3745) (DRAWBULL 3747 . 4170) (GETPT
4172 . 4530) (RANDPT 4532 . 4835)))))
STOP