有名なフラクタル図形のシダを描く

PC-9801の実機がないため検証できませんが、

N88-BASICで動くと思います。

VL-BASICに入っているサンプルプログラムの

a2.basを走らせると描画します。

a2.basのLISTです。

以下のようなブロックIF文のような書き方ができたかと思いますがどうでしょうか

とりあえずVL-BASICては走ります。


100 '------------------------------------------------------------

110 ' フラクタル図形 シダ

120 '------------------------------------------------------------

130 CLS 2

140 X = 0:Y = 0

150 FOR I = 1 TO 10000

160   PSET(320+X*30,320-Y*30),4

170   R = RND(1)

180   IF R < 0.01 THEN ELSE *ELSE1

190     X1 = 0

200     Y1 = Y * 0.16 :GOTO *ENDIF

210   *ELSE1:IF R < 0.01+0.07 THEN ELSE *ELSE2

220     X1 = X * 0.20 - Y * 0.26

230     Y1 = X * 0.23 + Y * 0.22 + 1.60:GOTO *ENDIF

240   *ELSE2:IF R < 0.01+0.07+0.07 THEN ELSE *ELSE3

250     X1 = Y * 0.28 - X * 0.15

260     Y1 = X * 0.26 + Y * 0.24 + 0.44:GOTO *ENDIF

270   *ELSE3

280     X1 = X * 0.85 + Y * 0.04

290     Y1 = Y * 0.85 - X * 0.04 + 1.60

300   *ENDIF

310   X = X1:Y = Y1

320 NEXT


a3.basの内容ものせておきます。

不具合がでないか心配ですが...

一応VL-BASICではブロックIF文をサポートしています。

こちらはN88-BASICでは動きません。


100 '------------------------------------------------------------

110 ' フラクタル図形 シダ

120 '------------------------------------------------------------

130 CLS 2

140 X = 0:Y = 0

150 FOR I = 1 TO 10000

160   PSET(320+X*30,320-Y*30),4

170   R = RND(1)

180   IF R < 0.01 THEN

190     X1 = 0

200     Y1 = Y * 0.16

210   ELSE IF R < 0.01+0.07 THEN

220     X1 = X * 0.20 - Y * 0.26

230     Y1 = X * 0.23 + Y * 0.22 + 1.60

240   ELSE IF R < 0.01+0.07+0.07 THEN

250     X1 = Y * 0.28 - X * 0.15

260     Y1 = X * 0.26 + Y * 0.24 + 0.44

270   ELSE

280     X1 = X * 0.85 + Y * 0.04

290     Y1 = Y * 0.85 - X * 0.04 + 1.60

300   ENDIF

310   X = X1:Y = Y1

320 NEXT


N88-BASIC(86)互換?VL-BASIC for windows10,11など by ULproject

N88-BASIC(86)互換?VL-BASIC for windows10,11など by ULproject

VL-BASIC for windows10,11など by ULproject N88互換BASIC? CPUリアルタイムレイトレーシング(一部フォトンマッピング)? BASICでお絵かき を紹介するサイト。

0コメント

  • 1000 / 1000