概述
引言
在MOOC上看到一个好玩的实例——“用Python绘制科赫雪花小包裹”,挺有意思,也不难,尝试一下把它实现出来了,先上效果图(来源:中国大学慕课“Python语言程序设计”,主讲人:嵩天)
效果图
思路
首先科普一下什么是科赫曲线,查阅百度百科解释如下:科赫曲线是一种像雪花的几何曲线,所以又称为雪花曲线,它是de Rham曲线的特例。科赫曲线是出现在海里格·冯·科赫的论文中,是分形曲线中的一种。科赫曲线是一种分形几何的图形,分形几何是一种迭代的几何图形,自然界中的花朵、植物叶片、雪花等都是这样的图形。我个人把分形几何简单地理解为:局部和整体结构一致的图形。以本文实现的科赫雪花为例,雪花的局部结构就和整体结构一致,如下图
n阶科赫曲线中,0阶是一条直线,一阶是把原直线分割为3段1/3长度,去掉中间一段直线,取之为一个凸起三角形的两边(边长也为原直线的1/3)得到的,二阶的话还是把一阶曲线的每段直线执行相同的操作,以此类推就得到n阶科赫曲线
那么如何用Python画出如此精美的图案呢?
首先,导入turtle库,用递归的方式绘制一条科赫曲线【补充递归的知识:1.定义:函数调用自身即为递归 2.实现方法:函数+分支结构(基例+链条)】
然后,将三条科赫曲线以等边三角形边的位置关系组合成科赫雪花。这样就搞定了
代码
#KochDrawV1.py
import turtle
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(level): # 三条科赫曲线组合成科赫雪花
turtle.setup(600, 600)
turtle.penup()
turtle.goto(-200, 100)
turtle.pendown()
turtle.pensize(2)
koch(400, level)
turtle.right(120)
koch(400, level)
turtle.right(120)
koch(400, level)
turtle.hideturtle()
level = int(input("输入科赫雪花阶数:")) # 输入阶数
main(level)
此外还可以用PyInstaller库(第三方库,要用pip命令安装)把Python源代码打包成后缀为.exe的可执行文件,这样就得到一个绘制雪花的软件,不依赖解释器环境就可以在Windows平台上运行。是不是很棒(๑•̀ㅂ•́)و✧
实现方法:先下载PyInstaller第三方库,之后在命令行中输入以下命令(Snowflake.ico是关联到软件的图标名,KochDrawV1.py是代码文件名称)
pyinstaller -i Snowflake.ico -F KochDrawV1.py
打包成软件
这里也提供了最终生成的可执行文件百度网盘链接
链接:https://pan.baidu.com/s/15lG-zIqoEFPyda0Jw2HQ-A
提取码:ai2p
最后
以上就是娇气唇彩为你收集整理的十分钟用Python画一片雪花引言效果图思路代码的全部内容,希望文章能够帮你解决十分钟用Python画一片雪花引言效果图思路代码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复