科赦曲线是一种像雪花的曲线,所以又称雪花曲线。
1、画一个等边三角形。
2、将每条边都三等分,取中间线段,以该线段长度为边长,向外画等边三角形,然后擦去该线段。
3、依此类推,一直画下去
![](https://i-blog.csdnimg.cn/blog_migrate/ce5e417dedd68ad96676347c77418d47.png)
在python中绘制科赦曲线要安装swampy包,利用其中的TurtleWorld模块
Turtle绘制图形库:默认以画布中心为坐标原点,默认在“standard”模式下坐标原点上有一条面朝x轴正方向的小乌龟
- turtle.fd(distance):画笔向当前方向移动distance的距离
- turtle.rt(angle):绘制方向向右旋转angle度
- turtle.lt(angle):绘制方向向左旋转angle度
- turtle.delay: 绘图延迟
try:
from swampy.TurtleWorld import * #从Swampy的程序包中导入TurtleWorld模块的全部成员
except ImportError:
from TurtleWorld import * #如果下载了Swampy但没有安装
def koch(t, n): #递归
"""Draws a koch curve with length n."""
if n<3:
fd(t, n)
return
m = n/3.0
koch(t, m)
lt(t, 60)
koch(t, m)
rt(t, 120)
koch(t, m)
lt(t, 60)
koch(t, m)
def snowflake(t, n):
"""Draws a snowflake (a triangle with a Koch curve for each side)."""
for i in range(3):
koch(t, n)
rt(t, 120)
world = TurtleWorld() #建立一个TurtleWorld对象,赋值给变量world
bob = Turtle() #建立一个Turtle对象,赋值给bob
bob.delay = 0 #绘图延迟
bob.x = -150
bob.y = 90 #设置起始位置
bob.redraw()
snowflake(bob, 300)
world.mainloop()
运行程序,绘制的图形如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/18afa75bc35bf62dccd204e630c89e04.png)