Python学习笔记--科赫雪花的绘制
科赫雪花
- 科赫雪花:
- 科赫雪花小程序的打包(带图标)
百度百科的解释:
科赫雪花:
科赫雪花的绘制思想:
我们使用递归和tutle库来实现科赫雪花的绘制
首先调用turtle库。
import turtle再定义一个koch函数,用于绘制科赫曲线。
该函数有两个参数,length表示最开始绘制科赫曲线的每一条直线的长度,n为科赫曲线的阶数。
当n==0时,我们只需要绘制一条直线;
若n!=0,绘制一条length为当前长度的1/3的n-1阶的科赫曲线;再让海龟左转60度,绘制第二条n-1阶的科赫曲线;然后左转120度,绘制第三条曲线,再左转-60度,绘制第四条曲线。
定义一个main函数用于调用koch函数
def main():turtle.setup(800, 400)turtle.penup()turtle.goto(-300, -50)turtle.pendown()turtle.pensize(3)koch(600, 3)#调用koch函数,阶数为3然后我们可以得到一条三阶的科赫曲线
我们需要绘制 科赫雪花,因此,我们需要对main函数做一下修改:
科赫雪花是以等边三角形三边生成的科赫曲线组成的。因此,只需要添加一个循环即可。
在绘制完一条科赫曲线后,将海龟向右旋转120度,绘制第二条科赫曲线;绘制完后,再旋转120度,绘制第三条。再相应的修改下画笔、画布的参数,一个科赫雪花就绘制完成啦~
【为了美观一点,使用 turtle.screensize()函数将画布背景设置为黑色,使用turtle.pencolor(“white”)将画笔颜色设置为白色】
def main():turtle.screensize(600, 600, "black")turtle.pencolor("white")turtle.penup()turtle.goto(-150, 150)turtle.pendown()turtle.pensize(2)for i in range(3):koch(300, 3)turtle.right(120)完整代码如下:
import turtle def koch(length, n):if n == 0:turtle.fd(length)else:for angle in [0, 60, -120, 60]:turtle.left(angle)koch(length / 3, n - 1) def main():turtle.screensize(600, 600, "black")turtle.pencolor("white")turtle.penup()turtle.goto(-150, 150)turtle.pendown()turtle.pensize(2)for i in range(3):koch(300, 3)turtle.right(120) main() turtle.hideturtle() turtle.done()科赫雪花小程序的打包(带图标)
阿里巴巴矢量库:https://www.iconfont.cn/
先下载一个你想用来做图标的图片(ico格式)。可以在阿里矢量库里下载图片时,直接将扩展名改成ico,也可以下载png格式的图片,再将png图片转换成ico格式。
【注意:要下载128x128像素大小的图片】
将下载的图片存放到需要打包的程序的同一目录下,然后windows键+R键打开cmd命令,j进入存放程序的目录,输入:
pyinstaller -F -i 图标文件名.ico 程序文件名.py或者
pyinstaller -i 图标文件名.ico -F 程序文件名.py这样就是打包成功了
本人最初打包的时候,报错 “struct.error: unpack requires a string argument of length 16”,就是因为图标的尺寸问题,改成128x128像素大小的就ok了
然后到存放程序的目录下找到dist文件夹,打开它就可以看到生成的带图标的程序了!
怎样将png图片转换成ico格式?
https://jingyan.baidu.com/article/5bbb5a1bea704313eba17931.html
总结
以上是生活随笔为你收集整理的Python学习笔记--科赫雪花的绘制的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 炉桥镇有没有新能源充电桩点?
- 下一篇: Python学习笔记--函数