python turtle应用实例_python-turtle-一个简单实例子
Python模塊 turtle的一個簡單實例----愛心發射
本質上是對今天學習繪圖的記錄,個人記錄,個人記錄。
簡單介紹turtle以及準備工作
官方的就很好啦
涉及到的軟件:pycharm、git、zsh。
繪圖思想
實際上了解turtle繪圖的機制之后,繪制圖形就是一件很簡單的事情了。就像是你拿著畫筆在選點繪線一樣,只要注意好坐標位置。
在我的實際操作中,發現一個比較有趣的地方就是對心型的繪制。事實上我一開始以為是要把笛卡爾心型線給封裝進去,搜索后發現大家很多都是用控制偏移來畫出心形,然后就看到一些比較有意思的畫法了。
一看就是工科生畫法hh 機械制圖還是有好處qwq
具體就是把握住 circle()會在當前點左邊半徑距離開始畫圓就ok了,美中不足就是下面該是弧度,可以拿cad對應尺寸算一下改改
心
最終結果
其實是用視頻轉出來的,鬼知道我換了幾個剪輯軟件@-@
幾個軟件推薦一下Kdenlive,我愿稱你為小pr
pacman直接就能下載
hello.gif
遇到并解決的問題
作為arch新手,連夜組好的python環境還很脆弱QAQ 在繪圖之前的工作和繪圖之后的報錯、導出都是坑。來來回回花費了將近半天時間才算是勉強完成。下面是可能出現的問題以及解決方法
記錄圖像的時候調用的tkinter模塊,會報出No module named _tkinter的錯誤信息。問題原因可能有很多,文末鏈接一個或許有幫助的帖子。事實上上述所有的情況我都試了,還是一直報錯,就在我快要絕望的時候,我才想起來,python3里tkiter是小寫開頭,我導入的時候忘記改了...遂解決
關于pip list里面已經安裝好的庫,pycharm不識別的情況。這一點其實很重要,涉及到python虛擬環境的情況。事實上你開創一個新項目,pycharm會給你提供一個新的獨立環境來為改項目服務,就會產生兩個包環境,從離他近的那個讀取包列表。具體解決方法文末鏈接,個人認為很透徹了,這才是一個正經回答該有的樣子。
仍存在的問題,提供折中方法
針對arch linux :使用oh-my-zsh來配置zsh, 會和anaconda沖突。造成主題缺失、部分命令不可用的問題。這一點困擾了我好久,網上也沒有什么特別有幫助的信息。只能說自己對linux還是不夠了解,抽空擠時間好好研究一下。
在此diss一下中文社區的環境,一個答案各個平臺甚至是同平臺你抄來我抄去,圖都不帶換樣的,還沒啥實質性幫助。為了那么點流量至于嗎,每次都得賊慢的去stack上面看鳥國人交流。
我臨時的方法是使用pycharm, 暫時放棄jupyter notebook(能用,但是終端太丑了我受不了嚶嚶嚶)
記錄turtle的繪圖記錄:這個也是個難纏的問題,或許windows會很好解決。
1、事實上stackoverflow上面有很完美的解決方法,遺憾的是他生成的是.eps文件而非gif。需要通過專業軟件PS、IL等再去處理。(醒醒,你是linux用戶)或許你可以通過網頁上的在線轉換轉來一張張gif文件,然后批量合成這些gif文件成一個gif。oh, it's terrible.
2、github上有個開源項目,專門寫了一個包來記錄并生成gif和視頻。你可以通過git clone的方式獲取,注意原文指導有一點歧義,執行install文件需要在你的.git那里而非根目錄,同時需要sudo提限如果不是特意設置的話。
參考文章
注意你的python版本,或許會存在問題
事實上他不該是個問題,你需要了解你的工具。對于新手來說這是一篇非常好的文章。
很完美的解決方法,但是需要額外軟件支持
主要是想法nice, 簡單實惠。
我的源碼
事實上生成gif的方法并不完善,我只放出來了繪圖部分的代碼,僅供參考
# Have a nice day!
# A pink heart for you.
import tkinter
import turtle as tl
def draw():
tl.color('black')
tl.pensize(2)
# head
tl.penup()
tl.setpos(-200, 0)
tl.pendown()
tl.circle(50)
# body
tl.right(90)
tl.forward(70)
# leg_left
tl.right(45)
tl.forward(70)
# leg_right
tl.penup()
tl.setpos(-200, -70)
tl.pendown()
tl.left(120)
tl.forward(50)
tl.right(110)
tl.forward(60)
# arm_left
tl.penup()
tl.setpos(-200, -25)
tl.pendown()
tl.setheading(270)
tl.left(90)
tl.forward(40)
tl.left(50)
tl.forward(40)
# arm_right
tl.penup()
tl.setpos(-200, -45)
tl.pendown()
tl.setheading(270)
tl.left(90)
tl.forward(40)
tl.right(50)
tl.forward(40)
# heart
tl.fillcolor("pink")
tl.begin_fill()
tl.pensize(2)
tl.pencolor("pink")
tl.penup()
tl.setpos(-70, -80)
tl.pendown()
tl.setheading(0)
tl.left(45)
tl.fd(60)
tl.circle(30, 180)
tl.right(90)
tl.circle(30, 180)
tl.fd(60)
tl.end_fill()
# eyes
tl.pensize(5)
tl.pencolor("black")
tl.penup()
tl.setheading(270)
tl.setpos(-220, 60)
tl.pendown()
tl.fd(10)
tl.penup()
tl.setheading(270)
tl.setpos(-180, 60)
tl.pendown()
tl.fd(10)
# done
tl.hideturtle()
draw()
總結
以上是生活随笔為你收集整理的python turtle应用实例_python-turtle-一个简单实例子的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gtp怎么安装系统_UEFI+GTP模式
- 下一篇: python开发一个彩票系统_[宜配屋]