前ポスト「エッジ書き換え型」のL-Systemにつづき、Figure 1.13, Figure 1.16で紹介されるノード書き換え型です。
Figure 1.16 a は以下のように書けます。
s = "-L"
for i in range(int(x)):
s = rewrite(s,'L',"lF+rFr+Fl-F-lFlFl-FrFr+")
s = rewrite(s,'R',"-lFlF+rFrFr+F+rF-lFl-Fr")
print s
s = s.replace('l','L')
s = s.replace('r','R')
a = s
‘L’,’R’を使って仮置き換えする考え方はエッジ書き換え型と同じです。最後に’L’,’R’を’F’に置き換えない!というところがポイントです。あるいはあえて8行目に以下のコードを挟み、
s = s.replace('L','')
s = s.replace('R','')
と明示的に消去するのも、意図としては正しいです。ちなみに Figure 1.16 b の書き換えルールは以下赤部分間違っています(赤部分’R’と’F’が逆)。


Comments are closed.