前ポスト「エッジ書き換え型」の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.