Jump to content

Dragon curve: Difference between revisions

(→‎{{header|Quackery}}: fast graphics)
Line 664:
 
==={{header|Liberty BASIC}}===
{{works with|Just BASIC}}
<syntaxhighlight lang="lb">nomainwin
mainwin 50 20
Line 720 ⟶ 721:
close #a
end</syntaxhighlight>
 
==={{header|MSX Basic}}===
{{trans|Commodore BASIC}}
<syntaxhighlight lang="basic">
10 REM Dragon curve
20 REM SIN, COS in arrays for PI/4 multipl.
30 DIM S(7),C(7)
40 QPI=ATN(1)
50 FOR I=0 TO 7
60 S(I)=SIN(I*QPI)
70 C(I)=COS(I*QPI)
80 NEXT I
90 LEVEL=15
100 INSIZE=128:REM 2^WHOLE_NUM (looks better)
110 X=80
120 Y=70
130 SQ=SQR(2)
140 ROTQPI=0:ITER=0:RQ=1
150 DIM R(LEVEL)
160 SCREEN 2
170 GOSUB 230
180 OPEN "GRP:" FOR OUTPUT AS #1
190 DRAW "BM 0,184":PRINT #1,"Hit any key to exit."
200 IF INKEY$="" THEN 200
210 CLOSE #1
220 END
230 REM Dragon
240 IF ROTQPI<0 THEN ROTQPI=ROTQPI+8:GOTO 260
250 IF ROTQPI>7 THEN ROTQPI=ROTQPI-8
260 IF LEVEL>1 THEN GOTO 330
270 YN=S(ROTQPI)*INSIZE+Y
280 XN=C(ROTQPI)*INSIZE+X
290 LINE (X,Y)-(XN,YN)
300 ITER=ITER+1
310 X=XN:Y=YN
320 RETURN
330 INSIZE=INSIZE*SQ/2
340 ROTQPI=ROTQPI+RQ
350 IF ROTQPI<0 THEN ROTQPI=ROTQPI+8:GOTO 370
360 IF ROTQPI>7 THEN ROTQPI=ROTQPI-8
370 LEVEL=LEVEL-1
380 R(LEVEL)=RQ:RQ=1
390 GOSUB 230
400 ROTQPI=ROTQPI-R(LEVEL)*2
410 IF ROTQPI<0 THEN ROTQPI=ROTQPI+8:GOTO 430
420 IF ROTQPI>7 THEN ROTQPI=ROTQPI-8
430 RQ=-1
440 GOSUB 230
450 RQ=R(LEVEL)
460 ROTQPI=ROTQPI+RQ
470 IF ROTQPI<0 THEN ROTQPI=ROTQPI+8:GOTO 490
480 IF ROTQPI>7 THEN ROTQPI=ROTQPI-8
490 LEVEL=LEVEL+1
500 INSIZE=INSIZE*SQ
510 RETURN
</syntaxhighlight>
 
==={{header|PureBasic}}===
512

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.