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=80:Y=70 110 ROTQPI=0:RQ=1 120 DIM R(LEVEL) 130 SCREEN 2 140 GOSUB 200 150 OPEN "GRP:" FOR OUTPUT AS #1 160 DRAW "BM 0,184":PRINT #1,"Hit any key to exit." 170 IF INKEY$="" THEN 170 180 CLOSE #1 190 END 200 REM Dragon 210 ROTQPI=ROTQPI AND 7 220 IF LEVEL>1 THEN GOTO 280 230 YN=S(ROTQPI)*INSIZE+Y 240 XN=C(ROTQPI)*INSIZE+X 250 LINE (X,Y)-(XN,YN) 260 X=XN:Y=YN 270 RETURN 280 INSIZE=INSIZE*SQ/2 290 ROTQPI=(ROTQPI+RQ)AND 7 300 LEVEL=LEVEL-1 310 R(LEVEL)=RQ:RQ=1 320 GOSUB 200 330 ROTQPI=(ROTQPI-R(LEVEL)*2)AND 7 340 RQ=-1 350 GOSUB 200 360 RQ=R(LEVEL) 370 ROTQPI=(ROTQPI+RQ)AND 7 380 LEVEL=LEVEL+1 390 INSIZE=INSIZE*SQ 400 RETURN