資訊內(nèi)容
Scratch3.0編程繪制角色倒影【圖文教程】
如何讓用scratch實(shí)現(xiàn)一個(gè)倒影的效果?效果如下:
咱們先直接看代碼
思路:
scratch繪制倒影的過程所采用的方法我暫且稱之為掃描法,他的原理很簡(jiǎn)單,就是從被掃描對(duì)象區(qū)域的一個(gè)角開始,逐行掃描,如果碰到掃描對(duì)象,此時(shí)偵測(cè)顏色,設(shè)置好畫筆的顏色,然后將畫筆移動(dòng)到此對(duì)象的對(duì)稱位置去繪制出這個(gè)點(diǎn),再回到剛才掃描的位置,繼續(xù)掃描,如此反復(fù),直到把所有區(qū)域掃描完。
實(shí)現(xiàn)步驟:
1、添加背景和熊(角色),將熊放置到圖中的位置(可適當(dāng)調(diào)整下角色大小)
2、然后確定一個(gè)掃描區(qū)域,這個(gè)區(qū)域要把熊全部包括進(jìn)去,否則倒影就不完整
3、大概測(cè)出這個(gè)區(qū)域的左下角坐標(biāo)(-17,-45),掃描區(qū)域的寬度(100)和高度(90)[注:在scratch2可以根據(jù)鼠標(biāo)當(dāng)前的坐標(biāo)很快確定這些數(shù)據(jù),scratch3中可以借助其它角色來(lái)確定這這個(gè)數(shù)據(jù),這個(gè)數(shù)據(jù)不需要多么精確,只要能把熊全部掃描到即可]
4、添加一個(gè)畫筆角色,這個(gè)角色有兩個(gè)重要任務(wù),首先是掃描,其次是繪圖。我們采用繪制角色的方式,繪制一個(gè)1像素的點(diǎn)即可。(為什么要畫的這么小呢?我們等會(huì)再說)
5、添加畫筆擴(kuò)展,編寫程序,當(dāng)綠旗點(diǎn)擊時(shí),我們需要清空舞臺(tái),這一步是為了后期二次執(zhí)行時(shí),將上次繪制的倒影擦除。將角色移動(dòng)到掃描起始位置,用變量存儲(chǔ)此時(shí)y坐標(biāo),因?yàn)楹竺鎾呙枧c繪制都會(huì)以此對(duì)稱,還沒明白?沒關(guān)系繼續(xù)往下看。
6,實(shí)現(xiàn)掃描,這個(gè)操作很簡(jiǎn)單,就是讓角色從左下角開始向右移動(dòng),到達(dá)右端,再往上移動(dòng)一格繼續(xù)掃描,運(yùn)動(dòng)軌跡覆蓋整個(gè)掃描區(qū)域。
7、掃描過程中加入偵測(cè),如果畫筆碰到熊,此時(shí)判斷是什么顏色(如果畫筆角色過大,偵測(cè)范圍就會(huì)變大,畫出的倒影就不準(zhǔn)確,大家后期可以嘗試對(duì)比),根據(jù)不同的顏色要對(duì)應(yīng)修改畫筆的顏色。(例如咱們的熊角色就有四種顏色,身體是棕色,鼻子周圍的棕色稍淺,眼睛和鼻子的顏色雖然看起來(lái)一樣,但還是有差別的。)
8、畫筆的顏色設(shè)置好了,接下來(lái)就要讓畫筆到對(duì)稱的位置去畫出對(duì)應(yīng)的點(diǎn)來(lái)(因?yàn)槭茄豿軸對(duì)稱,所以只需要改變y坐標(biāo)即可),再把畫筆移回去,繼續(xù)掃描,這樣整個(gè)程序也就完成了。那么如何找到對(duì)稱位置的點(diǎn)呢?還記得第5步那個(gè)對(duì)稱的橫線嗎?看下圖,我們?cè)趺床拍艽_定對(duì)稱位置呢?
下面是新繪制倒影的程序部分
程序源碼下載:Scratch3.0編程繪制角色倒影 或者微信公眾號(hào)回復(fù)“倒影”
本站部分內(nèi)容轉(zhuǎn)載自網(wǎng)絡(luò),如有侵權(quán)請(qǐng)聯(lián)系管理員及時(shí)刪除。
- 上一篇
scratch編程繪制數(shù)字金字塔(楊輝三角)
楊輝三角相信很多人都不陌生,它是一個(gè)無(wú)限對(duì)稱的數(shù)字金字塔,在中國(guó)南宋數(shù)學(xué)家楊輝1261年所著的《詳解九章算法》一書中出現(xiàn)。用程序打印出楊輝三角也是C、C++編程中的一道經(jīng)典題目……
- 下一篇
全國(guó)青少年Scratch相關(guān)等級(jí)考試及相關(guān)賽事整理
全國(guó)青少年軟件編程等級(jí)考試、國(guó)際青少年編程技術(shù)等級(jí)考試、全國(guó)中小學(xué)生電腦制作大賽、全國(guó)青少年創(chuàng)意編程與智能設(shè)計(jì)大賽……

