Python-科赫雪花(科克曲线)

翻译过来的名字,WHO CARE


定义

设想一个边长为1的等边三角形,取每边中间的三分之一,接上去一个形状完全相似的但边长为其三分之一的三角形,结果是一个六角形。现在取六角形的每个边做同样的变换,即在中间三分之一接上更小的三角形,以此重复,直至无穷。外界的变得原来越细微曲折,形状接近理想化的雪花。它的名字叫科克曲线

这里写图片描述


首先绘制科克曲线

科克曲线很简单

#科克曲线
import turtle
turtle.pensize(4)
turtle.pencolor('green')
turtle.penup()
turtle.goto(-100,0)
turtle.pendown()

#抽象步骤,如果是0阶,只需前行;如果是一阶,需要前行,转向,前行,转向,前行,转向,前行,
#共有的是前行,阶数需要控制转向的次数,所以边界是0阶,只需前行
def keke_line(n=1,len=120):
    if n==0:
        turtle.fd(len)
    else:
        for i in [0,60,-120,60]:
            turtle.left(i)
            keke_line(n-1,len/3)

keke_line()


turtle.hideturtle()
turtle.done()

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述


❄️雪花就很好办了

#科赫雪花
import turtle

def kehe(len,n):
    if n == 0:
        turtle.fd(len)
    else:
        for i in [0,60,-120,60]:
            turtle.left(i)
            kehe(len / 3, n - 1)


lenth = 500
level = 3
du = 120
def main():
    turtle.penup()
    turtle.goto(-100,100)
    turtle.pensize(2)
    turtle.color('green')
    turtle.pendown()

    kehe(lenth,level)
    turtle.right(du)
    kehe(lenth, level)
    turtle.right(du)
    kehe(lenth, level)
    turtle.right(du)




    turtle.hideturtle()
    turtle.done()

main()

这是三阶

这里写图片描述

这是五阶

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值