少兒程式設計:怎樣用python畫一個星空?

你有多久沒有見到滿天繁星了,不如用python畫一個吧!

畫一個星空,分解下來,只有三步:

第一步:準備畫布和畫筆

第二步:畫一顆星星

第三步:畫很多顆星星

少兒程式設計:怎樣用python畫一個星空?

是不是很簡單,那我們開始吧!

第一步:準備畫布和畫筆

Python有一個厲害的畫圖工具,它叫做“turtle”(烏龜),它就像只會畫畫的烏龜,比彩筆盒可厲害多了。

少兒程式設計:怎樣用python畫一個星空?

看看turtle是怎麼來做這件事的?

少兒程式設計:怎樣用python畫一個星空?

首先,把turtle請回家;因為晚上天是黑色的,所以把畫布顏色設定成黑色;星星是亮的,所以把畫筆顏色設定成白色。

工具準備好以後,開始第二步了。

第二步:畫一顆星星

少兒程式設計:怎樣用python畫一個星空?

學會畫線

要畫星星,首先要會畫線,那怎樣畫一條線呢?

數字“200”是線的長度,代表畫一條長度為200個單位的直線。

看看執行後是什麼結果吧!

少兒程式設計:怎樣用python畫一個星空?

它的結果是朝右畫一條長度200的直線。

少兒程式設計:怎樣用python畫一個星空?

好了,我們已經會畫線條1了,那怎麼畫線條2呢?

學會畫筆轉彎

這時候畫筆該轉彎了

少兒程式設計:怎樣用python畫一個星空?

我們知道,五角星的內角度數是36度,根據內角和,從線條1朝右轉向線條2,就需要轉144度。

turtle的right工具可以讓畫筆轉向:

這一句程式碼的意思,就是讓畫筆向右轉144度。

那我們轉144度之後,畫第二條線,程式碼就是這樣:

看看執行結果怎麼樣吧!

少兒程式設計:怎樣用python畫一個星空?

成功轉彎,畫出第二條線!

按照同樣的方式,可以畫出其餘四條線:

少兒程式設計:怎樣用python畫一個星空?

使用迴圈語句簡化程式碼

仔細看這些程式碼,發現是同樣的兩行程式碼重複了5次,不想寫那麼長的程式碼怎麼辦,能不能偷個懶呢?當然可以!

python有一個工具,叫做迴圈range,看看把這麼長的程式碼改成迴圈以後是什麼樣子吧。

少兒程式設計:怎樣用python畫一個星空?

兩邊的程式碼代表同樣的意思,不過用了迴圈之後,程式碼就少了很多呀。

右邊迴圈第一句的意思是:在數字5的範圍內(0,1,2,3,4),一一給i賦值,每賦值一個,就執行一遍後面的兩行程式碼。

也就是,第一次i=0時,執行一遍;第二次i=1時,執行第二遍;第三次i=2時,執行第三遍;第四次i=3時,執行第四遍;第五次i=4時,執行第五遍。這兩行程式碼就相當於迴圈運行了5遍了。

這裡要注意,要迴圈執行的程式碼,

前面要空四格

,代表這是迴圈包含的程式碼。

給星星填充顏色

現在畫出來的星星,只有線條,是個空心的星星。

少兒程式設計:怎樣用python畫一個星空?

要怎麼給它塗上顏色呢?

turtle有一個填充顏色的工具,代表用畫筆的顏色塗滿整個閉合區域,我們畫筆顏色已經是白色了,就不需要重新設定。

只需要標識好起始和結束塗色的位置就可以啦。

少兒程式設計:怎樣用python畫一個星空?

這樣,我們就可以畫出一顆星星了。

第三步:畫很多顆星星

要不定個小目標吧,畫100顆星星。

學會函式

一個人畫100顆星星,是不是太累了點。

可不可以請個小弟去做這件事,自己指揮就可以了呢?當然可以。

我們把畫一顆星星的任務,交給一個叫做draw_star的小弟。

少兒程式設計:怎樣用python畫一個星空?

那麼以後,我只要想畫一顆星星,就直接召喚小弟去畫就可以了。

這裡,我們要畫100顆星星,那就用迴圈技能召喚小弟100次就可以了。

只是,當我們迴圈畫100顆星星的時候,發現一直在原地畫個不停,星星都疊起來了,看起來還是隻有一顆。

學會移動畫筆

這裡我們就需要每次畫星星前,把畫筆移動到不同的地方。

turtle有一個工具可以移動畫筆。

這個goto工具,就是把畫筆移動到(x,y)座標處,這個座標是什麼意思呢?

少兒程式設計:怎樣用python畫一個星空?

其實,我們的整個畫布有一個看不見的座標系。畫筆最開始的位置就在畫布的中心,也就是(0,0)的地方,從中心位置開始,橫向有一條x座標軸,縱向是y座標軸。

所以畫布上的任何一個點,都對應一個(x,y)座標,使用goto語句,可以把畫筆直接移動到對應的座標點上去。

移動畫筆到隨機的點

python有一個隨機數工具包,它可以用來產生隨機數,它叫random。

要使用它,先用import random把它請回家,再使用工具包裡的randint產生隨機的整數。

我們嘗試讓畫筆隨機移動到100個隨機的點,看看怎麼做呢?

random。randint(-200,200)的意思是:產生一個-200到200範圍的隨機整數。

少兒程式設計:怎樣用python畫一個星空?

可以看到,畫筆確實在隨機移動,可是怎麼移動的時候把還拖出了一條線呢?

其實這個畫筆就是透過移動拖出線條,只是我們畫星星,不需要它在移動畫筆的時候還畫線條怎麼辦呢?

其實我們抬起畫筆就可以了,畫筆抬起,它就不會畫線條,畫筆落下,又可以開始畫線條了。

少兒程式設計:怎樣用python畫一個星空?

所以在移動前,加一行程式碼抬起畫筆,在移動完成後,加一行程式碼落下畫筆就可以了。

調整星星的尺寸

因為星空中的星星很小,不需要像之前那樣畫那麼大,所以我們讓小弟把星星的尺寸調小一點,改成“20”。

我們已經學會隨機移動畫筆了,接下來就是在每次移動完畫筆後,召喚小弟畫一顆星星了。

少兒程式設計:怎樣用python畫一個星空?

看看最終效果怎麼樣?

少兒程式設計:怎樣用python畫一個星空?

似乎有什麼不同?

原來所有星星都是一樣大的,那怎樣畫出大小不一樣的星星呢?

少兒程式設計:怎樣用python畫一個星空?

這個問題就留給聰明的你思考吧!

2。

加我微信

,影片連線教你修改和執行原始碼;

3。學習不能走彎路,孩子是否需要學程式設計,要從哪裡開始學起,市面上課程那麼多,哪些適合你,歡迎諮詢,線上

500元/次

,一次性解決你的所有疑問。

我在深圳,歡迎掃碼加我微信!

TAG: 畫筆星星程式碼移動200