四、填色 color 函數有三個參數。第一個參數指定有多少紅色,第二個指定有多少綠色,第三個指定有多少藍色。比如,要得到車子的亮紅色,我們用 color(1,0,0),也就是讓海龜用百分之百的紅色畫筆。 這種紅色、綠色、藍色的混搭叫做RGB(Red,Green,Blue)。因為紅綠藍是色光上的三原色 ...
四、填色
color 函數有三個參數。第一個參數指定有多少紅色,第二個指定有多少綠色,第三個指定有多少藍色。比如,要得到車子的亮紅色,我們用 color(1,0,0),也就是讓海龜用百分之百的紅色畫筆。
這種紅色、綠色、藍色的混搭叫做RGB(Red,Green,Blue)。因為紅綠藍是色光上的三原色,任何顏色都可以通過改變三原色的比重來調配出來。
雖然我們不是在電腦屏幕上混合顏料(我們用的是光!),但我們可以把RGB方案想象成三個顏料桶,一個紅的,一個綠的和一個藍的。每個桶里都是滿的,我們可以看成滿桶的值是1(100%)。然後把所有的紅顏料和綠顏料混在一起放在一個大缸里,這樣就產生了黃色。
現在我們嘗試用海龜畫一個黃色的圓,我們要用100%的紅色和綠色顏料,不能使用藍色:
效果如下:
>>> t.color(1,1,0) ##100%的紅色,100%的綠色,0%的藍色 >>> t.begin_fill() ##給後面的形狀填色 >>> t.circle(50) >>> t.end_fill() ##用RGB顏色來給圓填色黃色的圓
1,用來畫填色圓形的函數
為了更容易地用不同的顏色來試驗,我們來把畫圓填色的代碼寫成一個函數:
>>> def mycircle(red,green,blue): t.color(red,green,blue) t.begin_fill() t.circle(50) t.end_fill()
我們可以只用綠色來畫一個很亮的綠色的圓,如圖A:
>>> mycircle(0,1,0)
也可以用一半的綠色(0.5)來畫一個深綠色的圓,如圖B:
>>> mycircle(0,0.5,0)
A: B:
2,使用純白和純黑
當天空沒有了太陽,世界就變得一切黑暗(假設我們那時候還沒有發明燈)。類比,如果讓三種顏色都設置為0,就相當於沒有光,這時候畫出來的圖形都是黑色的;反之為1全為白。
>>> mycircle(0,0,0)
五、畫正方形的函數
>>> def mysquare(size): for x in range(1,5): t.forward(size) t.left(90)
>>> mysquare(25) >>> mysquare(50) >>> mysquare(75) >>> mysquare(100) >>> mysquare(125)
效果如下:
六、畫填色正方形
要對正方形填色,首先要重置畫布,開始填色,然後在調用正方形函數,過程如下:
>>> t.reset() >>> t.begin_fill() >>> mysquare(50) >>> t.end_fill() ##加入這行代碼前,你應當看到一個空的正方形,直到你結束填充
效果如下:
我們現在可以改變下這個函數,讓它既可以畫填好的正方形也可以畫不填色的正方形。
>>> def mysquare(size,filled): if filled == True: t.begin_fill() for x in range(1,5): t.forward(size) t.left(90) if filled == True: t.end_fill()
下麵我們可以畫一個填了色的正方形:
>>> mysquare(50,True)
接著畫一個沒有填色的正方形:
>>> mysquare(150,False)
七、畫填好色的星星
現在我們要寫一個mystar函數
>>> def mystar(size,filled): if filled == True: ##檢查filled是否為真 t.begin_fill() ##如果是的話開始填充 for x in range(1,19): t.forward(size) if x % 2 == 0: t.left(175) else: t.left(225) if filled == True: t.end_fill()mystar函數
現在我們可以畫一個金色(90%紅色,75%綠色,0%的藍色)的星星
>>> t.color(0.9,0.75,0)
>>> mystar(120,True)
效果如下:
要給星星畫上輪廓,把顏色改成黑色並且不用填色再畫一遍星星:
>>> t.color(0,0,0)
>>> mystar(120,False)
效果如下:
總結
今天下午收穫頗豐,忘記了吃飯,忘記了打游戲,一直在學習Python作圖。學會瞭如何用turtle模塊畫幾個基本的幾何圖形,還有用for迴圈和if語句來控制海龜在屏幕上的動作。同時可以改變海龜的筆的顏色並給它所畫的形狀填色。還用了一些函數(比如 def 函數)來重用繪圖的代碼,提高了效率。
路還很長,堅持走下去!共勉