38 lines
871 B
Plaintext
38 lines
871 B
Plaintext
10 rem Dragon curve
|
|
20 rem sin, cos in arrays for pi/4 multipl.
|
|
30 dim s(7),c(7)
|
|
40 for i = 0 to 7
|
|
50 s(i) = sin(i*pi/4) : c(i) = cos(i*pi/4)
|
|
60 next i
|
|
70 level = 15
|
|
80 insize = 256 : rem 2^whole_num (looks better)
|
|
90 x = 224 : y = 140
|
|
100 sq = sqr(2)
|
|
110 rotqpi = 0 : rq = 1
|
|
120 dim r(level)
|
|
130 graphics 0 : graphics cls
|
|
140 gosub 160
|
|
150 end
|
|
160 rem Dragon
|
|
170 rotqpi = rotqpi and 7
|
|
180 if level <= 1 then
|
|
190 yn = s(rotqpi)*insize+y
|
|
200 xn = c(rotqpi)*insize+x
|
|
210 graphics moveto x,y : graphics lineto xn,yn
|
|
220 x = xn : y = yn
|
|
230 else
|
|
240 insize = insize*sq/2
|
|
250 rotqpi = (rotqpi+rq) and 7
|
|
260 level = level-1
|
|
270 r(level) = rq : rq = 1
|
|
280 gosub 160
|
|
290 rotqpi = (rotqpi-r(level)*2) and 7
|
|
300 rq = -1
|
|
310 gosub 160
|
|
320 rq = r(level)
|
|
330 rotqpi = (rotqpi+rq) and 7
|
|
340 level = level+1
|
|
350 insize = insize*sq
|
|
360 endif
|
|
370 return
|