Python学习笔记--科赫雪花的绘制
科赫雪花
- 科赫雪花:
- 科赫雪花小程序的打包(帶圖標)
百度百科的解釋:
科赫雪花:
科赫雪花的繪制思想:
我們使用遞歸和tutle庫來實現(xiàn)科赫雪花的繪制
首先調(diào)用turtle庫。
import turtle再定義一個koch函數(shù),用于繪制科赫曲線。
該函數(shù)有兩個參數(shù),length表示最開始繪制科赫曲線的每一條直線的長度,n為科赫曲線的階數(shù)。
當n==0時,我們只需要繪制一條直線;
若n!=0,繪制一條length為當前長度的1/3的n-1階的科赫曲線;再讓海龜左轉(zhuǎn)60度,繪制第二條n-1階的科赫曲線;然后左轉(zhuǎn)120度,繪制第三條曲線,再左轉(zhuǎn)-60度,繪制第四條曲線。
定義一個main函數(shù)用于調(diào)用koch函數(shù)
def main():turtle.setup(800, 400)turtle.penup()turtle.goto(-300, -50)turtle.pendown()turtle.pensize(3)koch(600, 3)#調(diào)用koch函數(shù),階數(shù)為3然后我們可以得到一條三階的科赫曲線
我們需要繪制 科赫雪花,因此,我們需要對main函數(shù)做一下修改:
科赫雪花是以等邊三角形三邊生成的科赫曲線組成的。因此,只需要添加一個循環(huán)即可。
在繪制完一條科赫曲線后,將海龜向右旋轉(zhuǎn)120度,繪制第二條科赫曲線;繪制完后,再旋轉(zhuǎn)120度,繪制第三條。再相應(yīng)的修改下畫筆、畫布的參數(shù),一個科赫雪花就繪制完成啦~
【為了美觀一點,使用 turtle.screensize()函數(shù)將畫布背景設(shè)置為黑色,使用turtle.pencolor(“white”)將畫筆顏色設(shè)置為白色】
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格式)??梢栽诎⒗锸噶繋炖锵螺d圖片時,直接將擴展名改成ico,也可以下載png格式的圖片,再將png圖片轉(zhuǎn)換成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圖片轉(zhuǎn)換成ico格式?
https://jingyan.baidu.com/article/5bbb5a1bea704313eba17931.html
總結(jié)
以上是生活随笔為你收集整理的Python学习笔记--科赫雪花的绘制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 炉桥镇有没有新能源充电桩点?
- 下一篇: FIIL为什么周一到周五晚上九点就会报警