MYTurtleクラスを使って木を描くことにする。プログラムは以下のようになる:
import myturtle
angle = 60
ratio = 0.5
def ki( mikiT, length):
if( length > 1):
miki=mikiT.clone()
miki.reverse()
miki.fd(length)
ki(miki, ratio*length)
miki.rt(angle)
ki(miki, ratio*length)
if __name__ == '__main__':
miki = myturtle.MyTurtle()
miki.clear()
miki.ht()
miki.lt(90)
miki.setposition(0,-200)
ki( miki, 200)
ここでは関数kiの引数に入るturtleオブジェクトがこのki関数で変化しないようにturtleオブジェクトのクローンを作って描画させている。
このクローンを使わない方法をとるにはki関数内でダミーな動きをさせて結果的にturtleオブジェクトの状態変化がなかったようにする:
import myturtle
angle = 60
ratio = 0.5
def ki( miki, length):
if( length > 1):
miki.reverse()
miki.fd(length)
ki(miki, ratio*length)
miki.rt(angle)
ki(miki, ratio*length)
miki.lt(angle) #ダミー
miki.bk(length) #ダミー
miki.reverse() #ダミー
if __name__ == '__main__':
miki = myturtle.MyTurtle()
miki.clear()
miki.ht()
miki.lt(90)
miki.setposition(0,-200)
ki( miki, 200)
【描画の結果】