Figure 1.8 を再現するコード

まず generate コンポーネント(右側)の方にの generate 関数に ’f’ の機能を追加します。

        elif ptn[i] == 'f':
            p = p + v 

‘F’ と同様に「座標を前に進め」ますが、違うのは線を描かないこと。

rewritingの方は、ルール適用の途中で書き換わらないように、いったん’X’,’Y’などに置き換えてから、最後に’F’,’f’に置き換えるといいでしょう。

s = "F+F+F+F"
for i in range(int(x)):
    s = rewrite(s,'F',"X")
    s = rewrite(s,'f',"Y")
    s = rewrite(s,'X',"F+f-FF+F+FF+Ff+FF-f+FF-F-FF-Ff-FFF")
    s = rewrite(s,'Y',"ffffff")

print s
a = s

Comments are closed.