Cesàro Fractal

最近在看How to think like a computer scientist:Learning with python这本书,下面是一个有趣的练习题:

用turtle module生成以下图形:

源代码如下:

import turtle

from math import radians

from math import sin



def cesaro(t, order, size):

if order == 0:

t.forward(size)

else:

s_size = size / 2 * (sin(radians(5)) + 1)

for i in (85, -170, 85, 0):

cesaro(t, order-1, s_size)

t.left(i)



def square_cesaro(t, order, size):

for i in range(4):

cesaro(t, order, size)

t.left(90)



screen = turtle.Screen()

screen.bgcolor("lightgreen")

t = turtle.Turtle()

t.color("blue")

square_cesaro(t, 3, 100)

screen.mainloop()


我想,只要是有规律的图形,再难也能用递归的方法画出来,是吗?

posted @ 2011-10-07 20:37  GamerH2o  阅读(329)  评论(0编辑  收藏  举报