turtle库看下面我写的一般来说就够了,挺简单的,重点是递归画图。
> turtle库需要下载,打开cmd,输入pip install turtle就可以安装了,下载慢的话可以看我那篇“安装scipy老是失败怎么办”博文。
> turtle.setup():设置一个相当于画板的东西。
> turtle.penup():拿起画笔,防止设置起点时画笔移动产生“多于线条”。
> turtle.goto(x,y):重置画笔起点。
> turtle.speed():设置画笔速度,设为0的话,即默认最大值。
> turtle.pensize():设置画笔粗细。
> turtle.right(x):顺时针旋转x度。
> turtle.left(x):逆时针旋转x度。
> turtle.fd(y):前进y像素。
> turtle.pendown():讲画笔放在画板上,此时用turtle.fd(y)会看见线条的移动及痕迹。
> turtle.pos():记录画笔位置。
递归时注意,重置画笔坐标时,方向依然不变,需要自己修改。
import turtle as tt
def 奇异三角形(n,size):
if n==0:
for angle in [60,-120,-120]:
tt.left(angle)
tt.fd(size)
else:
pos=tt.pos()
奇异三角形(n-1,size/2)
tt.penup()
tt.goto(pos) # 此时方向指向-x轴
tt.right(120)
tt.fd(size/2)
tt.right(60)
tt.pendown()
奇异三角形(n-1,size/2)
tt.penup()
tt.goto(pos)
tt.right(180)
tt.fd(size/2)
tt.pendown()
奇异三角形(n-1,size/2)
tt.setup(1000,1000)
tt.penup()
tt.goto(-500,-200)
tt.pendown()
tt.speed(0)
tt.pensize(2)
奇异三角形(6,700)
tt.done()
背景:在慕课上学python时,课后扩展的习题。