当前位置:   article > 正文

Python实现 科赫雪花小包裹(嵩天老师)_科赫雪花代码

科赫雪花代码

实例8:科赫雪花小包裹

理解:

一条线,分为3段,去掉中间一段,向上形成三角,循环多次,最终形成科赫雪花。

代码:( 科赫雪花程序)

  1. #KochDrawV1.py
  2. import turtle
  3. def koch(size,n):
  4. if n==0:
  5. turtle.fd(size)
  6. else:
  7. for angle in [0,60,-120,60]:
  8. turtle.left(angle)
  9. koch(size/3,n-1)
  10. def main():
  11. turtle.setup(600,600)
  12. turtle.penup()
  13. turtle.goto(-200,100)
  14. turtle.pendown()
  15. turtle.pensize(2)
  16. level=3
  17. koch(400,level)
  18. turtle.right(120)
  19. koch(400,level)
  20. turtle.right(120)
  21. koch(400,level)
  22. turtle.done()
  23. main()

 打包的时候就用pyinstaller库打包

python PyInstaller 库的使用_华泽的花的博客-CSDN博客

逐行分析:

​#KochDrawV1.py
import turtle

调用海龟函数绘图体系

def koch(size,n):
定义koch函数

    if n==0:
        turtle.fd(size)

如果n=0,就绘制一条直线

    else:
        for angle in [0,60,-120,60]:
             turtle.left(angle)
             koch(size/3,n-1)

循环n次,依次按顺序向左转相应的角度

def main():
    turtle.setup(600,600)

程序运行框高600像素,宽600像素

    turtle.penup()
抬起笔

    turtle.goto(-200,100)
来到当前位置的向左200,向上100处

    turtle.pendown()
落下笔

    turtle.pensize(2)
笔的宽度为2

    level=3
定义循环次数(此处可修改)

    koch(400,level)
调用koch函数绘制一个方向的雪花

    turtle.right(120)
向右转120度

    koch(400,level)
再次调用koch函数绘制下一个方向上的雪花

    turtle.right(120)
    koch(400,level)

解释同上

    turtle.done()
运行程序结束后不退出

main()
调用main函数运行此程序

ps:运行程序时为什么每次调用koch时要转120度?

我们不妨将level定义成0,运行结果如下图:

所以构成雪花的最原始的图形是三角形,为了使三角形封上口所以需要转120度

但并不要求原始图形一定使三角形,只要是封闭图形即可

 因此,我们可以

1.修改几何绘制阶数

2.修改科赫曲线的基本定义及旋转角度

3.修改绘制科赫雪花的基本框架图形

 同时,可绘制图形也不仅限于科赫曲线

-康托尔集、谢尔宾斯基三角形、门格海绵

-龙形曲线、空间填充曲线、科赫曲线

-深入理解函数递归的思想,尝试编写程序运行它们。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/710190
推荐阅读
相关标签
  

闽ICP备14008679号