Python项目实践:科赫曲线、科赫雪花

分形几何

分形几何图形的整体与它的局部具有很相似的特点。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

# kochDrawV1.py
import turtle
def koch(size, n):
    if n == 0:
        turtle.forward(size)
    else:
        for angle in [0, 60, -120, 60]:
            turtle.left(angle)
            koch(size / 3, n - 1)

def main():
    turtle.setup(800, 400)
    turtle.penup()
    turtle.goto(-300, -50)
    turtle.pendown()
    turtle.pensize(2)
    koch(600, 3)
    turtle.hideturtle()
    turtle.done()

main()

看一下执行顺序:
angle = {int} 0
n = {int} 3 # angle=0 koch(3)
size = {int} 600

angle = {int} 0
n = {int} 2  # angle=0 koch(2)
size = {float} 200.0

angle = {int} 0
n = {int} 1  # angle=0 koch(1)
size = {float} 66.66666666666667

angle = {int} 60
n = {int} 1  # angle=60 koch(1)
size = {float} 66.66666666666667

angle = {int} -120
n = {int} 1  # angle=-120 koch(1)
size = {float} 66.66666666666667

angle = {int} 60
n = {int} 1  # angle=60 koch(1)
size = {float} 66.66666666666667

angle = {int} 0
n = {int} 2  # angle=0 koch(2) 下一个轮回
size = {float} 200.0

angle = {int} 60
n = {int} 2  # angle=60 koch(2) 
size = {float} 200.0

在这里插入图片描述
在这里插入图片描述
当level=0时,绘制的是一个等边三角形:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

PS: source, python123.io

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值