|
|
1.1 root 1: %!PS-Adobe-2.0 EPSF-2.0
2: %%Title: Rectangle.eps
3: %%Creator: Ali Ozer
4: %%CreationDate: Tue Aug 14 10:38:47 1990
5: %%Pages: 0 1
6: %%BoundingBox: -5 0 600 792
7: %%EndComments
8: % Fun with scaling and rotating...
9: % This program draws a rectangle over and over again while
10: % slightly altering the scale and rotate values by a
11: % fixed amount. This results in symmetric patterns.
12: % Author: Ali Ozer, March 1989
13:
14: % Initialize the random number generator
15: % You can also seed the random number generator with
16: % a constant number to get the same pattern everytime...
17: usertime srand
18:
19: % Random number generator
20: % a b randfloat generates one of 1000 numbers [a..b)
21: /randfloat { % start end
22: exch dup 3 1 roll % start end start
23: sub % end-start
24: rand 1000 mod 1000 div % 0 - 0.999
25: mul add
26: } bind def
27:
28: % The drawing routine.
29: /drawbox {
30: -100 -100 200 200 rectstroke
31: } bind def
32:
33: % Change the following for different pictures...
34: /xscaleAmount 0.98 1.02 randfloat def
35: /yscaleAmount 0.98 1.02 randfloat def
36: /rotateAmount -3.0 3.0 randfloat def
37: /numSteps 200 def
38:
39: % Come up towards the middle of a 8.5x11 (default) page
40: 72 8.5 mul 2 div 72 11 mul 2 div translate
41:
42: % Have thin lines (even when scaled; 0 linewidth
43: % means "use the smallest line you can")
44: 0 setlinewidth
45:
46: % Take numSteps steps from 1 to 0, drawing a
47: % rectangle and altering the coordinate system
48: % by the above values at every step...
49:
50: 1 1 numSteps div neg 0 {
51: setgray
52: xscaleAmount yscaleAmount scale
53: rotateAmount rotate
54: drawbox
55: } for
56:
57:
58: %%EndFile
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.