如何用Scratch畫出美麗的愛心?
在上一篇文章《520,521:用Scratch畫出美麗的愛心》中,我們介紹了使用桃心形曲線繪製愛心的方法。在清華大學出版社出版的少兒編程圖書《「編」玩邊學:Scratch趣味編程進階——妙趣橫生的數學和演算法》一書中,介紹了繪製桃心形曲線的具體方法,以及玫瑰曲線、蝴蝶曲線等妙趣橫生的數學曲線,感興趣的讀者不妨閱讀此書。
在這一篇文章中,我們來介紹由科技傳播坊(微信公眾號)李澤老師提供的帶有高光效果的填充桃心形的方法,同時還介紹一種由蘇秦老師提供的繪製雙心相扣的愛心圖形的方法。
繪製高光效果的愛心
如下圖所示,這是科技傳播坊(微信公眾號)李澤老師提供的帶有高光效果的愛心圖形,高光部分的位於圖形的中心位置,由中心向四周逐漸變暗,看上去比較飽滿,具有立體的視覺效果。
這個圖形的繪製方法是,利用一個「動點」角色(圖中的黑點)在桃心形曲線上運動,並從桃心形的中心位置向「動點」角色所在位置畫出一條亮度不斷衰減的直線。如下圖所示。
當繪製的直線數量增加,填充效果慢慢出現了,如下圖所示。
當繪製的直線數量足夠多時,就能實現填充效果,如下圖所示。
注意:為便於讀者觀察和理解,圖中特意用了一個黑點作為動點角色的造型。其實,將動點角色隱藏或者是使用一個空白造型都不影響實際的繪製工作。
在實現上述填充效果的方法中有兩個技術要點。
(1)將動點角色移到桃心形曲線上。
在計算出桃心形參數x和y後,使用「廣播…並等待」指令向動點角色發出「移到動點」的消息。
當動點角色收到「移到動點」消息後,就將自身移動到當前桃心形曲線的(x,y)坐標上。
(2)從桃心形中心位置向動點角色繪製漸變直線。
首先,把畫筆角色移到桃心形的中心位置,並讓畫筆角色面向動點角色。這樣就完成了設置畫筆的移動方向。
然後,在一個循環結構中移動畫筆角色,即朝著動點角色所在位置每次移動1步,直到畫筆角色到動點角色的距離小於1時為止。這樣結合「落筆」指令就能實現了從中心位置向桃心形曲線上的一點(動點角色所在坐標)畫出一條直線。
在繪製直線前,先將畫筆亮度設定為100(即高亮),然後在畫筆移動過程中不斷減少畫筆亮度(每次減小0.4),從而畫出一條亮度漸變的直線。
小海豚科學館將上述功能封裝成一個「畫線」的自定義過程,具體腳本如下。
最後,小海豚科學館給出畫筆角色中的主要腳本,如下圖所示。
注意,「將t增加0.1」指令積木,這裡用於調整繪製的直線數量,其值越小,直線數量越多。 另外,在繪製時,記得打開編輯菜單中的「加速模式」。
此外,讀者參考上一篇文章《520,521:用Scratch畫出美麗的愛心》或者《「編」玩邊學:Scratch趣味編程進階——妙趣橫生的數學和演算法》書中的桃心形曲線繪製方法,就能實現一顆帶有高光效果的紅色愛心。
繪製雙心相扣的愛心
如下圖所示,這是蘇秦老師提供的雙心相扣的愛心圖形,兩顆帶有高光效果的鏤空愛心交錯相扣在一起,代表兩顆心緊密相連,不離不棄。
繪製雙心相扣的愛心圖形有兩個事情需要做,一是如何繪製一顆帶有高光效果的鏤空愛心,二是如何將兩顆愛心交錯相扣。
第一步:繪製一顆帶有高光效果的鏤空愛心
這種效果的愛心的繪製方法是,繪製多個大小不等的愛心圖形,當愛心的數量足夠多時,就實現了填充效果。觀察下圖,想像一下。
要實現高光效果,可以在繪製前將畫筆亮度設定為50,每次畫一個愛心之後,將畫筆亮度增加3。
繪製單顆愛心的主要的程序腳本如下圖所示。
使用上述腳本繪製的愛心效果如下圖所示。
在上述程序腳本中,以舞台中心坐標(0,0)作為愛心圖形的中心。我們改造上述腳本,使其能夠在舞台上指定的位置繪製愛心。如下圖所示,通過x0和y0兩個參數來指定愛心的在舞台上的中心位置。
我們將繪製單顆愛心的功能封裝到一個名為「繪製桃心形」的自定義過程中,參數為x0和y0。
使用上圖所示的腳本,我們可以在舞台上繪製出兩個愛心圖形。但是這兩顆愛心是上下堆疊在一起的,沒有交錯相扣的效果。
第二步:繪製兩顆交錯相扣的愛心
要繪製交錯相扣效果的兩顆愛心,可以採用分段繪製的方法。即按需要畫出愛心曲線的一部分,從而可以決定兩顆愛心各部分的繪製順序,實現交錯相扣的效果。
為此,我們需要改造上述腳本,加入支持繪製曲線的一部分的功能。如下面腳本所示,通過增加d1和d2兩個參數來設置繪製愛心曲線的開始和結束部分。這樣我們就能夠決定曲線的各個部分繪製的先後順序,從而能夠實現交錯相扣的效果。
下面介紹繪製兩顆交錯相扣的愛心,具體步驟如下。
(1)在舞台的(65,0)位置畫出右邊的愛心處於底層的部分,即愛心曲線的270~360度部分。
(2)在舞台的(-60,50)位置畫出左邊的愛心的完整曲線,即0~360度。
(3)在舞台的(65,0)位置畫出右邊的愛心的處於頂層的部分,即愛心曲線的0~270度的部分。
至此,我們就得到了兩頂交錯相扣的愛心,其繪製過程的動態效果如下圖。
GIF
數學曲線是一個值得探討的有趣話題,如果你感興趣,可以繪製畫更多有趣的數學曲線。在清華大學出版社出版的《「編」玩邊學:Scratch趣味編程進階——妙趣橫生的數學和演算法》一書中,介紹了玫瑰曲線、蝴蝶曲線、外擺線等一些有趣的數學曲線,有興趣的話不妨看看。
TAG:小海豚科學館 |