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

举报
小生凡一 发表于 2021/10/15 23:44:15 2021/10/15
【摘要】 这个就是八个科赫曲线!!! import turtle import time def koch(size, n): # 定义弯曲的直线使其有棱角 if n == 0: t...

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

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)


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56

最后附上效果图

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

文章来源: blog.csdn.net,作者:小生凡一,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_45304503/article/details/104944704

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。