科赫曲线:科赫曲线是一种像雪花的几何曲线,所以又称为雪花曲线,它是de Rham曲线的特例。科赫曲线是出现在海里格·冯·科赫的论文《关于一条连续而无切线,可由初等几何构作的曲线》(1904年,法语原题:Sur une courbe continue sans tangente, obtenue par une construction géométrique élémentaire)中,是分形曲线中的一种。
设想一个边长为1的等边三角形,取每边中间的三分之一,接上去一个形状完全相似的但边长为其三分之一的三角形,结果是一个六角形。现在取六角形的每个边做同样的变换,即在中间三分之一接上更小的三角形,以此重复,直至无穷。外界的变得原来越细微曲折,形状接近理想化的雪花。即科赫曲线。
版本一
3阶科赫曲线
# DrawKoch.py
import turtle
def koch(size, n):
if n == 0:
turtle.fd(size)
else:
for angle in [0, 60, -120, 60]:
turtle.left(angle)
koch(size/3, n-1)
def main():
turtle.setup(800,400)
turtle.speed(0) #控制绘制速度
turtle.penup()
turtle.goto(-300, -50)
turtle.pendown()
turtle.pensize(2)
koch(600,6) # 0阶科赫曲线长度,阶数
turtle.hideturtle()
main()
版本二
雪花效果
#DrawKoch.py
import turtle
def koch(size, n):
if n == 0:
turtle.fd(size)
else:
for angle in [0, 60, -120, 60]:
turtle.left(angle)
koch(size/3, n-1)
def main():
turtle.setup(600,600)
turtle.speed(0)
turtle.penup()
turtle.goto(-200, 100)
turtle.pendown()
turtle.pensize(2)
level = 5
koch(400,level)
turtle.right(120)
koch(400,level)
turtle.right(120)
koch(400,level)
turtle.hideturtle()
main()
Python123 Python语言程序设计基础(第2版) 5-6 科赫曲线的绘制
https://blog.csdn.net/q1694222672/article/details/81985942