欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

绘制科赦曲线

程序员文章站 2022-05-03 15:53:23
...

科赦曲线是一种像雪花的曲线,所以又称雪花曲线。
1、画一个等边三角形。
2、将每条边都三等分,取中间线段,以该线段长度为边长,向外画等边三角形,然后擦去该线段。
3、依此类推,一直画下去
绘制科赦曲线

在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()
运行程序,绘制的图形如下图所示:
绘制科赦曲线