科赫曲线是分形几何中的一种。非常具有数学美感的一种曲线。
先定义下投影长度:曲线总长度在当前角度的投影
科赫曲线的定义(从绘制的角度定义)是递归的:
绘制投影长度为size的第n阶的科赫曲线:
1.若n=0,则绘制长度为size的直线
2.否则,按顺序分别旋转0,60,-120,60度,每旋转一个角度后绘制投影长度为size/3的n-1阶科赫曲线
import turtle
def draw(t,n,size):
if(n==0):
t.fd(size)
else:
t.left(0)
draw(t,n-1,size/3)
t.left(60)
draw(t,n-1,size/3)
t.left(-120)
draw(t,n-1,size/3)
t.left(60)
draw(t,n-1,size/3)
def main():
n=int(input())
turtle.setup(640,480)
turtle.title("绘制Koch雪花曲线")
t=turtle.Turtle()
t.hideturtle()
t.up()
t.goto(0,0)
t.down()
for i in range(3):
draw(t,n,300)
t.right(120)
turtle.mainloop()
main()