2015年に空前のシダ描画ブーム到来して以来、私たちは『何か』を待っていました。それが何かはそのときは分かりませんでした。しかし、2020年の年末ついにその『何か』が明らかになりました。
それは・・・なでしこでシダを描画したかったんです!
こんな風に描画できます!
手っ取り早く動かしたい方は
- こちらで実際にWebブラウザ上で実行できます
なでしこv3のプログラム
もし余力があれば、以下のプログラムを、なでしこv3のエディタに貼り付けて実行してみてください。キャンバスは500x550に設定すると全体が描画されます。
シダ.nako3
# 「プログラムでシダを描画する」
N = 20
xm = 0
ym = 0.5
h = 0.6
width = 500
height = 500
W1x = 関数(x, y) それは、0.836 * x + 0.044 * y。ここまで。
W1y = 関数(x, y) それは、-0.044 * x + 0.836 * y + 0.169。ここまで。
W2x = 関数(x, y) それは、-0.141 * x + 0.302 * y。ここまで。
W2y = 関数(x, y) それは、0.302 * x + 0.141 * y + 0.127。ここまで。
W3x = 関数(x, y) それは、0.141 * x - 0.302 * y。ここまで。
W3y = 関数(x, y) それは、0.302 * x + 0.141 * y + 0.169。ここまで。
W4x = 関数(x, y) それは、0。ここまで。
W4y = 関数(x, y) それは、0.175337 * y。ここまで。
●(kのxとyで)fとは
もし、0 < kならば
f(k - 1, W1x(x, y), W1y(x, y))
もし、(10の乱数) < 3ならば
f(k - 1, W2x(x, y), W2y(x, y))
ここまで。
もし、(10の乱数) < 3ならば
f(k - 1, W3x(x, y), W3y(x, y))
ここまで。
もし、(10の乱数) < 3ならば
f(k - 1, W4x(x, y), W4y(x, y))
ここまで。
違えば
s = 490
ここまで。
XX = INT(x * s + width * 0.5)
YY = INT(height - y * s)
[XX, YY, 1, 1]へ四角描画。
ここまで。
「少し実行まで時間がかかります。気長に待ってね。」と表示。
C=RGB(0,129,0)
1に線太設定。Cに線色設定。Cに塗色設定。
1秒後には
f(N, 0, 0)
ここまで。
まとめ
「え?!もっと日本語プログラミングっぽく書きたい?!」って?!
もちろん、もうちょっと自然な日本語のプログラムになります。
当然、変数名とか日本語がいいですよね?
というのも、これは他の言語のシダを移植しただけですからね。
きっと、若者たちが、シダをもっと日本っぽくしてくれるでしょう。
私はそれを待つことにします。