36 lines
738 B
Text
36 lines
738 B
Text
10 REM DRAGON CURVE
|
|
20 REM SIN, COS IN ARRAYS FOR PI/4 MULTIPL.
|
|
30 DIM S(7),C(7)
|
|
40 QPI=ATN(1):SQ=SQR(2)
|
|
50 FOR I=0 TO 7
|
|
60 S(I)=SIN(I*QPI):C(I)=COS(I*QPI)
|
|
70 NEXT I
|
|
80 LEVEL=15
|
|
90 INSIZE=128:REM 2^WHOLE_NUM (LOOKS BETTER)
|
|
100 X=112:Y=70
|
|
110 ROTQPI=0:RQ=1
|
|
120 DIM R(LEVEL)
|
|
130 GRAPHIC 2,1
|
|
140 GOSUB 160
|
|
150 END
|
|
160 REM DRAGON
|
|
170 ROTQPI=ROTQPI AND 7
|
|
180 IF LEVEL>1 THEN GO TO 240
|
|
190 YN=S(ROTQPI)*INSIZE+Y
|
|
200 XN=C(ROTQPI)*INSIZE+X
|
|
210 DRAW ,X,Y TO XN,YN
|
|
220 X=XN:Y=YN
|
|
230 RETURN
|
|
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 RETURN
|