Dragon curve: Difference between revisions
Content added Content deleted
(→{{header|GW-BASIC}}: Doubled x-coords for better look in SCREEN 2. Structure: IF-THEN-ELSE used.) |
|||
Line 803: | Line 803: | ||
{{works with|BASICA}} |
{{works with|BASICA}} |
||
{{works with|QBasic}} |
{{works with|QBasic}} |
||
{{trans| |
{{trans|Commodore BASIC}} |
||
<syntaxhighlight lang="qbasic">10 REM |
<syntaxhighlight lang="qbasic">10 REM Dragon curve |
||
20 REM SIN, COS |
20 REM SIN, COS in arrays for PI/4 multipl. |
||
30 DIM S(7),C(7) |
30 DIM S(7), C(7) |
||
40 QPI = ATN(1) |
40 QPI = ATN(1) |
||
50 FOR I = 0 TO 7 |
50 FOR I = 0 TO 7 |
||
60 S(I) = SIN(I*QPI) |
60 S(I) = SIN(I * QPI) |
||
70 C(I) = COS(I*QPI) |
70 C(I) = COS(I * QPI) |
||
80 NEXT I |
80 NEXT I |
||
90 LEVEL = 15 |
90 LEVEL = 15 |
||
100 INSIZE = 128 |
100 INSIZE = 128: REM 2^WHOLE_NUM (looks better) |
||
110 X = 112 |
110 X = 112 |
||
120 Y = 70 |
120 Y = 70 |
||
130 SQ = SQR(2) |
130 SQ = SQR(2) |
||
140 ROTQPI = 0 |
140 ROTQPI = 0: ITER = 0: RQ = 1 |
||
150 DIM R(LEVEL) |
150 DIM R(LEVEL) |
||
160 SCREEN 2 |
160 SCREEN 2: CLS |
||
170 GOSUB 190 |
170 GOSUB 190 |
||
180 END |
180 END |
||
190 REM |
190 REM ** Dragon |
||
200 IF ROTQPI < 0 THEN ROTQPI = ROTQPI+8 |
200 IF ROTQPI < 0 THEN ROTQPI = ROTQPI + 8 ELSE IF ROTQPI > 7 THEN ROTQPI = ROTQPI - 8 |
||
210 IF |
210 IF LEVEL > 1 THEN GOTO 280 |
||
220 |
220 YN = S(ROTQPI) * INSIZE + Y |
||
230 |
230 XN = C(ROTQPI) * INSIZE + X |
||
240 LINE (2 * X, Y)-(2 * XN, YN): REM For SCREEN 2 doubled x-coords |
|||
240 XN = C(ROTQPI)*INSIZE+X |
|||
250 |
250 ITER = ITER + 1 |
||
260 |
260 X = XN: Y = YN |
||
270 |
270 RETURN |
||
⚫ | |||
280 RETURN |
|||
290 |
290 ROTQPI = ROTQPI + RQ |
||
300 ROTQPI = ROTQPI+ |
300 IF ROTQPI < 0 THEN ROTQPI = ROTQPI + 8 ELSE IF ROTQPI > 7 THEN ROTQPI = ROTQPI - 8 |
||
⚫ | |||
⚫ | |||
320 |
320 R(LEVEL) = RQ: RQ = 1 |
||
330 |
330 GOSUB 190 |
||
340 |
340 ROTQPI = ROTQPI - R(LEVEL) * 2 |
||
⚫ | |||
⚫ | |||
360 |
360 RQ = -1 |
||
⚫ | |||
⚫ | |||
380 RQ = R(LEVEL) |
|||
380 IF ROTQPI > 7 THEN ROTQPI = ROTQPI-8 |
|||
390 |
390 ROTQPI = ROTQPI + RQ |
||
⚫ | |||
400 GOSUB 190 |
|||
410 |
410 LEVEL = LEVEL + 1 |
||
420 |
420 INSIZE = INSIZE * SQ |
||
⚫ | |||
430 IF ROTQPI < 0 THEN ROTQPI = ROTQPI+8 : GOTO 450 |
|||
440 IF ROTQPI > 7 THEN ROTQPI = ROTQPI-8 |
|||
⚫ | |||
⚫ | |||
⚫ | |||
==={{header|IS-BASIC}}=== |
==={{header|IS-BASIC}}=== |