python turtle 八个嵌套雪花(科赫曲线组)

这个就是八个科赫曲线!!!

import turtle
import time


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(n):
    global a
    global s
    if a == 1:
        turtle.color("black")  # 这边是控制画笔的颜色
    elif a == 2:
        turtle.color("purple")
    elif a == 3:
        turtle.color("blue")
    elif a == 4:
        turtle.color("Cyan")
    elif a == 5:
        turtle.color("green")
    elif a == 6:
        turtle.color("yellow")
    elif a == 7:
        turtle.color("orange")
    elif a == 8:
        turtle.color("red")
    if n != 0:
        a += 1
        turtle.penup()
        turtle.goto(-200 * (4 / 7) ** (s - n), 100 * (4 / 7) ** (s - n))
        # 每一次都是需要合理的等比例的扩大或是缩小
        turtle.pendown()
        turtle.pensize(2)
        level = 5
        koch(400 * (4 / 7) ** (s - n), level)  # 大小是一个一个试出来的
        # 不能超过setup的设定的范围 600,不然就越界了
        turtle.right(120)
        koch(400 * (4 / 7) ** (s - n), level)
        turtle.right(120)
        koch(400 * (4 / 7) ** (s - n), level)  # 注意这里koch一次就要转一次角度
        turtle.right(120)
        turtle.hideturtle()  # 隐藏画笔
        main(n - 1)

a=1
s = int(input())  # 输入其中的科赫曲线的个数
turtle.setup(600, 600)
turtle.speed(0)
main(s)  # main(8)

最后附上效果图

在这里插入图片描述
可能还是太小了,里面的看的不是很清楚。
PS:这个画的很慢,即便是speed(0)也很慢,所以调试的时候,最好先用level=2来进行调试。否则就很难顶了。。。
大佬的话就当我没说

  • 7
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小生凡一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值