Jump to content

Dragon curve: Difference between revisions

Added GW-BASIC
(Added GW-BASIC)
Line 798:
Bsave "Dragon_curve_FreeBASIC.bmp",0
Sleep</syntaxhighlight>
 
==={{header|GW-BASIC}}===
{{works with|PC-BASIC|any}}
{{works with|QBasic}}
{{trans|MSX BASIC}}
<syntaxhighlight lang="qbasic">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 = 112
120 Y = 70
130 SQ = SQR(2)
140 ROTQPI = 0 : ITER = 0 : RQ = 1
150 DIM R(LEVEL)
160 SCREEN 2 : CLS
170 GOSUB 190
180 END
190 REM DRAGON
200 IF ROTQPI < 0 THEN ROTQPI = ROTQPI+8 : GOTO 220
210 IF ROTQPI > 7 THEN ROTQPI = ROTQPI-8
220 IF LEVEL > 1 THEN GOTO 290
230 YN = S(ROTQPI)*INSIZE+Y
240 XN = C(ROTQPI)*INSIZE+X
250 LINE (X,Y)-(XN,YN)
260 ITER = ITER+1
270 X = XN : Y = YN
280 RETURN
290 INSIZE = INSIZE*SQ/2
300 ROTQPI = ROTQPI+RQ
310 IF ROTQPI < 0 THEN ROTQPI = ROTQPI+8 : GOTO 330
320 IF ROTQPI > 7 THEN ROTQPI = ROTQPI-8
330 LEVEL = LEVEL-1
340 R(LEVEL) = RQ : RQ = 1
350 GOSUB 190
360 ROTQPI = ROTQPI-R(LEVEL)*2
370 IF ROTQPI < 0 THEN ROTQPI = ROTQPI+8 : GOTO 390
380 IF ROTQPI > 7 THEN ROTQPI = ROTQPI-8
390 RQ = -1
400 GOSUB 190
410 RQ = R(LEVEL)
420 ROTQPI = ROTQPI+RQ
430 IF ROTQPI < 0 THEN ROTQPI = ROTQPI+8 : GOTO 450
440 IF ROTQPI > 7 THEN ROTQPI = ROTQPI-8
450 LEVEL = LEVEL+1
460 INSIZE = INSIZE*SQ
470 RETURN</syntaxhighlight>
 
==={{header|IS-BASIC}}===
2,130

edits

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