Python實現(xiàn)七彩蟒蛇繪制實例代碼
本文主要研究的是Python編程turtle的實例,繪制一個七彩蟒蛇。。具體如下。
第2周的課后練習(xí)里,有一道題目,要求修改“蟒蛇繪制”程序,對Python 蟒蛇的每個部分采用不同顏色,繪制一條彩色蟒蛇。
原蟒蛇繪制程序如下:
因為剛開始學(xué)Python,不太熟悉,所以自己加了一些注釋,方便理解。
#蟒蛇繪制 import turtle def drawSnake(rad,angle,len,neckrad): for i in range(len): turtle.circle(rad,angle) #畫圓 rad:圓半徑 angle:圓弧度 turtle.circle(-rad,angle) #運行軌跡右側(cè)rad遠(yuǎn)的地方繪制圓 turtle.circle(rad,angle/2) turtle.fd(rad) #表示直線爬行,forward,參數(shù)表示爬行的距離 turtle.circle(neckrad+1,180) turtle.fd(rad*2/3) def main(): turtle.setup(1300,800,0,0) #設(shè)置窗口寬+高+起始位置 pythonsize = 30 turtle.pensize(pythonsize) #設(shè)置筆的寬度 turtle.pencolor("blue") #設(shè)置筆的顏色 turtle.seth(-40) #設(shè)置筆的起始角度 drawSnake(40,80,5,pythonsize/2)
通過仔細(xì)分析了該代碼,發(fā)現(xiàn)這段代碼中畫筆的顏色,是通過pencolor()來設(shè)置,如果想要將顏色變?yōu)椴噬?,顯然不能再用這種方法,因此我想到了用列表來解決這個問題,于是在drawSnake里創(chuàng)建一個名為colors的列表變量并且在列表中放置6種顏色,如下所示:
colors = [“red”,”orange”,”yellow”,”green”,”cyan”,”blue”]
在此之前呢,因為原先的程序里,len的值是5,因此畫出來的蟒蛇的身體只有五部分,為了顯示為七彩,特地將len的值改為6.
在for循環(huán)里,在繪畫之前,增加了一條語句,用來設(shè)置畫筆的顏色:
turtle.color(colors[i])
colors[i]中,i和for循環(huán)里的是同一個變量,當(dāng)i從0變化到5,相應(yīng)的,color()就會從前面所添加的、名為colors的顏色名稱列表中選取一種顏色,設(shè)置為畫筆的顏色。
而蟒蛇的頭部,則利用turtle.color(“purple”)設(shè)置為第7種顏色。
運行之后,我發(fā)現(xiàn)turtle每次繪圖,都是從畫板的中心開始的,我覺得不太好看,于是想找到一種方法能夠改變繪圖的起點,目前我找到的方法是,利用penup(),goto(),pendown()命令來改變畫筆起點的位置,如下所示:
turtle.penup()
turtle.goto(-350,0)
turtle.pendown()
如果后續(xù)再發(fā)現(xiàn)更好的方法,再更新。
一條七彩的蟒蛇就繪制好啦~
#蟒蛇繪制 import turtle def drawSnake(rad,angle,len,neckrad): colors = ["red","orange","yellow","green","cyan","blue"] for i in range(len): turtle.color(colors[i]) turtle.circle(rad,angle) turtle.circle(-rad,angle) turtle.color("purple") turtle.circle(rad,angle/2) turtle.fd(rad) turtle.circle(neckrad+1,180) turtle.fd(rad*2/3) def main(): turtle.setup(1300,800,0,0) turtle.penup() turtle.goto(-350,0) turtle.pendown() pythonsize = 30 turtle.pensize(pythonsize) turtle.seth(-40) drawSnake(40,80,6,pythonsize/2) main()
結(jié)果展示:
總結(jié)
以上就是本文關(guān)于Python實現(xiàn)七彩蟒蛇繪制實例代碼的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
相關(guān)文章
python GUI庫圖形界面開發(fā)之PyQt5中QMainWindow, QWidget以及QDialog的區(qū)別和選擇
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5中QMainWindow, QWidget以及QDialog的區(qū)別和選擇,需要的朋友可以參考下2020-02-02在python win系統(tǒng)下 打開TXT文件的實例
下面小編就為大家分享一篇在python win系統(tǒng)下 打開TXT文件的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04Python wxPython庫消息對話框MessageDialog用法示例
這篇文章主要介紹了Python wxPython庫消息對話框MessageDialog用法,結(jié)合實例形式簡單分析了wxPython庫的基本事件與相關(guān)使用技巧,需要的朋友可以參考下2018-09-09python中的break、continue、exit()、pass全面解析
下面小編就為大家?guī)硪黄猵ython中的break、continue、exit()、pass全面解析。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08