Jump to content

Dragon curve: Difference between revisions

134 bytes removed ,  11 months ago
→‎{{header|GW-BASIC}}: ... MOD 8 (originally realized by nested IFs) replaced by bitwise operations (... AND 7).
(→‎{{header|GW-BASIC}}: Doubled x-coords for better look in SCREEN 2. Structure: IF-THEN-ELSE used.)
(→‎{{header|GW-BASIC}}: ... MOD 8 (originally realized by nested IFs) replaced by bitwise operations (... AND 7).)
Line 803:
{{works with|BASICA}}
{{works with|QBasic}}
{{trans|Commodore BASIC|<code>... MOD 8</code> (originally realized by nested <code>IF</code>s) replaced by bitwise operations (<code>... AND 7</code>).}}
{{trans|Commodore BASIC}}
<syntaxhighlight lang="qbasic">10 REM Dragon curve
20 REM SIN, COS in arrays for PI/4 multipl.
Line 812:
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 ELSE IF ROTQPI >AND 7 THEN ROTQPI = ROTQPI - 8
210 IF LEVEL% > 1 THEN GOTO 280
220 YN = S(ROTQPI%) * INSIZE + Y
230 XN = C(ROTQPI%) * INSIZE + X
240 LINE (2 * X, Y)-(2 * XN, YN): REM For SCREEN 2 doubled x-coords
250 ITER% = ITER% + 1
260 X = XN: Y = YN
270 RETURN
280 INSIZE = INSIZE * SQ / 2
290 ROTQPI% = (ROTQPI% + RQ%) AND 7
410300 LEVEL% = LEVEL% +- 1
300 IF ROTQPI < 0 THEN ROTQPI = ROTQPI + 8 ELSE IF ROTQPI > 7 THEN ROTQPI = ROTQPI - 8
310 R%(LEVEL%) = LEVELRQ%: -RQ% = 1
330320 GOSUB 190
320 R(LEVEL) = RQ: RQ = 1
330 ROTQPI% = (ROTQPI% - R%(LEVEL%) * 2) AND 7
330 GOSUB 190
340 ROTQPIRQ% = ROTQPI - R(LEVEL) * 21
370350 GOSUB 190
350 IF ROTQPI < 0 THEN ROTQPI = ROTQPI + 8 ELSE IF ROTQPI > 7 THEN ROTQPI = ROTQPI - 8
360 RQ% = -1R%(LEVEL%)
370 ROTQPI% = (ROTQPI% + RQ%) AND 7
370 GOSUB 190
380 RQLEVEL% = R(LEVEL)% + 1
390 ROTQPIINSIZE = ROTQPIINSIZE +* RQSQ
430400 RETURN</syntaxhighlight>
400 IF ROTQPI < 0 THEN ROTQPI = ROTQPI + 8 ELSE IF ROTQPI > 7 THEN ROTQPI = ROTQPI - 8
410 LEVEL = LEVEL + 1
420 INSIZE = INSIZE * SQ
430 RETURN</syntaxhighlight>
 
==={{header|IS-BASIC}}===
511

edits

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