前言
上一篇寫了個溫度轉換的小程式,頗有點小成就感,聽大佬說,Python還能畫圖,我就虛心請教了一下,原來是用一個?🏻函式(海龜繪圖):turtle — Turtle graphics,
于是,我跟教練說:這次我想畫一個大太陽??~

加油💪🏻ヾ(?°?°?)ノ゙

你沒看錯,就是這個大太陽!!!
正文開始
在開始之前,先簡單介紹下海龜繪圖函式吧!
可參考官方教程:https://docs.python.org/zh-cn/3/library/turtle.html
下面列一下本文可能需要用到的一些方法:
setup() 設定
showturtle() | st() 顯示海龜
pensize() | width() 畫筆粗細
pencolor() 畫筆顏色
penup() | pu() | up() 畫筆抬起
pendown() | pd() | down() 畫筆落下
goto() | setpos() | setposition() 前往/定位
setheading() | seth() 設定朝向
color() 顏色
forward() | fd() 前進
left() | lt() 左轉
begin_fill() 開始填充
end_fill() 結束填充
circle() 畫圓
exitonclick() 當點擊時退出
大致了解一下就行,開始實戰吧!
1 創建專案檔案
第一步?🏻,自然是打開PyCharm,麻利的先創建一個新專案,再創建一個Python檔案😌:

2 理清邏輯
不管撰寫什么程式前,我的習慣:邏輯一定要先縷清楚!!!
由于海龜繪圖函式只能一筆畫完,因此可能無法達到 ?? 的展示效果;所以我粗略手畫了一下:

?? 一眼看去,大概組成:1個圓 和 8個 等邊三角形,所以,大概邏輯就是:
- 第一步: 把這個圖形切割為8個部分,每個部分如下圖所示:

- 第二步: 用海龜繪圖畫出這個部分,分為一個等邊三角形和一個弧線:
from turtle import *
# 畫筆抬起
pu()
# 定位開始位置
goto(-30, 100)
# 畫筆落下
pd()
# 設定朝向
seth(0)
pencolor('#EEC211')
# 前進80步
fd(80)
# 向左120度
lt(120)
# 前進80步
fd(80)
# 向左120度
lt(120)
# 前進80步
fd(80)
# 向左143度
lt(143)
# 向下畫半徑為100的弧線 68步
circle(-100, 68)
# 視窗手動點擊關閉
exitonclick()
運行后效果如下:

- 第三步: for回圈重復執行8次,拼接出完整太陽形狀:
from turtle import *
# 畫筆抬起
pu()
# 定位開始位置
goto(-30, 100)
# 畫筆落下
pd()
# 設定朝向
seth(0)
pencolor('#EEC211')
# 回圈8次
for i in range(8):
# 前進80步
fd(80)
# 向左120度
lt(120)
# 前進80步
fd(80)
# 向左120度
lt(120)
# 前進80步
fd(80)
# 向左143度
lt(143)
# 向下畫半徑為100的弧線 68步
circle(-100, 68)
# 視窗手動點擊關閉
exitonclick()
運行效果如下:

- 第四步: 給畫好的圖形上色
from turtle import *
# 畫筆抬起
pu()
# 定位開始位置
goto(-30, 100)
# 畫筆落下
pd()
# 設定朝向
seth(0)
pencolor('#EEC211')
# 設定顏色
color('#EEC211')
# 回圈8次
for i in range(8):
# 開始填充顏色
begin_fill()
# 前進80步
fd(80)
# 向左120度
lt(120)
# 前進80步
fd(80)
# 向左120度
lt(120)
# 前進80步
fd(80)
# 向左143度
lt(143)
# 向下畫半徑為100的弧線 68步
circle(-100, 68)
# 結束填充
end_fill()
# 視窗手動點擊關閉
exitonclick()
運行效果如下:

發現個小問題,中間部分沒有填充顏色,得想個辦法給它加上,
- 第五步: 中間部位填充顏色
講一下大概思路,就是在中間部位再畫一個圓,然后覆寫填充顏色即可,
# 中心部分上色
# 設定顏色
color('#EEC211')
begin_fill()
left(12)
circle(-145)
end_fill()
exitonclick()
運行效果如下所示:

- 最后一步: 整合代碼,封裝函式
# 畫太陽
def drawSun():
for i in range(8):
# 開始填充顏色
begin_fill()
# 前進80步
fd(80)
# 向左120度
lt(120)
# 前進80步
fd(80)
# 向左120度
lt(120)
# 前進80步
fd(80)
# 向左143度
lt(143)
# 向下畫半徑為100的弧線 68步
circle(-100, 68)
# 結束填充
end_fill()
# 主程式
def main():
# 畫筆顏色
pencolor('#EEC211')
# 畫筆抬起
pu()
# 定位開始位置
goto(-20, 100)
# 畫筆落下
pd()
# 設定朝向
seth(0)
# 設定顏色
color('#EEC211')
# 畫太陽
drawSun()
# 中心部分上色
begin_fill()
left(12)
circle(-145)
end_fill()
exitonclick()
運行效果如下:

歐克,大功告成!?? 今日份的學習,就到這了,下期再見~ 👋
完整代碼如下:
from turtle import *
def drawSun():
for i in range(8):
# 開始填充顏色
begin_fill()
# 前進80步
fd(80)
# 向左120度
lt(120)
# 前進80步
fd(80)
# 向左120度
lt(120)
# 前進80步
fd(80)
# 向左143度
lt(143)
# 向下畫半徑為100的弧線 68步
circle(-100, 68)
# 結束填充
end_fill()
def main():
# 畫筆顏色
pencolor('#EEC211')
# 畫筆抬起
pu()
# 定位開始位置
goto(-20, 100)
# 畫筆落下
pd()
# 設定朝向
seth(0)
# 設定顏色
color('#EEC211')
# 畫太陽
drawSun()
# 中心部分上色
begin_fill()
left(12)
circle(-145)
end_fill()
exitonclick()
main()
寫在最后
不學不知道,一學嚇一跳,原來Python不止可以爬蟲,還能畫圖,真有趣,我還見過有朋友畫 蠟筆小新 ,分享給朋友們看一下:

真有趣!!!真乃神人也~ 🙉
本次分享到此結束啦~
如果覺得文章對你有幫助,點贊、收藏、關注、評論,一鍵四連支持,你的支持就是我創作最大的動力,
?? 技術交流可以 關注公眾號:Lucifer三思而后行 ??
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/325593.html
標籤:python
上一篇:秋招面試題庫被“泄漏“導致86人同時面進大廠,當事人連夜坐火車跑路了
下一篇:Linux五大步安裝Python
