科赫曲线是分形几何中的一种。非常具有数学美感的一种曲线。
先定义下投影长度:曲线总长度在当前角度的投影
科赫曲线的定义(从绘制的角度定义)是递归的:
绘制投影长度为size的第n阶的科赫曲线:
1.若n=0,则绘制长度为size的直线
2.否则,按顺序分别旋转0,60,-120,60度,每旋转一个角度后绘制投影长度为size/3的n-1阶科赫曲线
当n趋近于无穷,科赫曲线的长度是无穷的。但是无穷的长度,包含的面积却是有限的。数学真是奇妙。
下面附上python3用turtle库实现的绘制科赫曲线代码:
#DrawKoch.py
import turtle as t
def koch(size, n):
if n==0:
t.fd(size)
else:
for angle in [0,60,-120,60]:
t.left(angle)
koch(size/3,n-1)
if __name__=='__main__':
t.setup(1000,1000)
t.pen(speed = 0, pendown = False, pencolor = 'blue')
a,n = 400,4
t.goto(-a/2,a/2/pow(3,0.5))
t.pd()
for i in range(3):
koch(a,n)
t.right(120)
t.ht()
t.done()