任亞飛
為了使用Scratch繪制立體圖形,我們需要具備一些向量和三角函數(shù)的基礎(chǔ)知識(shí),通過讓圖形移動(dòng)和縮放我們可以更好地掌握這些知識(shí)。
點(diǎn):數(shù)學(xué)概念點(diǎn)是最簡單的圖形,在Scratch中用平面直角坐標(biāo)系定位。
向量:具有大小和方向的量就叫向量,用于描述事物去哪里。
表現(xiàn)為箭頭,尖端為向量頭,另一端為向量尾。在字母上加箭頭表示,如V。向量可以執(zhí)行加減法和乘法運(yùn)算。
向量加法:向量的加法用平行四邊形法則和三角形法則。新向量表示為a和b的起點(diǎn)重合后,以它們?yōu)猷忂厴?gòu)成的平行四邊形的一條對(duì)角線或者表示為將a的終點(diǎn)和b的起點(diǎn)重合后,從a的起點(diǎn)指向b的終點(diǎn)的向量。
向量減法:向量a和b的相減,可以看成是a向量加上一個(gè)與b大小相等,方向相反的向量。表示為a和b的起點(diǎn)重合后,從b的終點(diǎn)指向a的終點(diǎn)的向量(圖1)。
列向量:坐標(biāo)系中的向量可以用它們的x分量和y分量來表示,這叫列向量表示法。而且向量不需要停留在原點(diǎn),可以放置在任何地方(圖2)。
乘法:標(biāo)量k和向量之間可以做乘法,結(jié)果是另一個(gè)與方向相同或相反的|k|倍的向量(圖3)。
直線上兩點(diǎn)間的部分就是線段,剛才在Scratch中就是畫筆從坐標(biāo)(0,0)落筆到(5,3)抬筆。
我們用線段畫出一個(gè)小電視。封裝兩個(gè)自定義函數(shù)積木。一個(gè)線段函數(shù)積木,畫出兩個(gè)坐標(biāo)值間的線段。通過4個(gè)變量來控制坐標(biāo),其中x和y變量是起始坐標(biāo)向量尾,x1和y1是向量頭。另一個(gè)函數(shù)積木是用線段畫小電視,具體取值見圖4。
通過觀察發(fā)現(xiàn),小電視左右移動(dòng)是平移X軸,y軸無變化。只需要對(duì)向量頭和尾的X軸的標(biāo)量加減運(yùn)算,也就是改變x軸坐標(biāo)值。上下移動(dòng)則只改變y軸坐標(biāo)值。通過新建變量“平移x”和“平移y”與函數(shù)積木線段對(duì)應(yīng)的參數(shù)運(yùn)算后就可以實(shí)現(xiàn)小電視的上下左右移動(dòng)(注:我們每改變一次x、y軸的量,函數(shù)線段和函數(shù)小電視就會(huì)重新執(zhí)行一遍,通過視覺感覺是在移動(dòng),其實(shí)它是在新的坐標(biāo)上重畫)。本程序用方向鍵控制小電視移動(dòng)(圖5)。
小電視的縮放其實(shí)就是在向量尾和向量頭的坐標(biāo)上分別對(duì)其放大或者縮小,也就是做乘法。通過新建變量“伸縮倍數(shù)”,用a、s鍵控制此變量增減,其值與線段函數(shù)積木參數(shù)的4個(gè)變量做乘法運(yùn)算,以實(shí)現(xiàn)小電視的縮放功能(圖6)。
1.基向量
在平面圖形學(xué)中,有兩個(gè)特殊的向量叫作標(biāo)準(zhǔn)基向量(也就是單位向量)。
i長度為1,方向指向X正方向的向量;j長度為1,方向指向y正方向的向量。
坐標(biāo)表現(xiàn)如圖7:
結(jié)論:圖形的變化重點(diǎn)就是改變標(biāo)準(zhǔn)基向量(i,j)。
線性變化:通過改變基向量變化向量的操作。變化過程如圖8-圖11。
基向量i。
從i變化到3i-2j。
繪制黃色箭頭向量2i+3j,紅色向量回到i。
再把紅色向量移動(dòng)到3i-2j,黃色向量跟著變化到6i-j。
那么6i-j是怎么來的呢?
變化過程:變化的是i向量,j向量沒變。
變化后新的基向量3i-2j帶入到2i+3j中。
計(jì)算過程就是把i替換成3i-2j。得到的式子(2(3i-2j)+3j=6i-j)。
2.三角函數(shù)知識(shí)
A為圓,AC為半徑r=1。點(diǎn)C做垂線相交在角A臨邊上點(diǎn)B形成了一個(gè)RT(直角三角形)。
根據(jù)三角函數(shù)關(guān)系(sinA=BC/AC=Y/1=y);(cosA=AB/AC=X/1=x)。BC為sinA;AB為cosA。由上得出AB為X軸坐標(biāo)值,BC為Y軸坐標(biāo)值(圖12)。
3.旋轉(zhuǎn)
讓小電視轉(zhuǎn)起來,由“旋轉(zhuǎn)度數(shù)”變量來控制,線段的長度在函數(shù)積木里面固定了,由于基向量的長度是1,通過三角函數(shù)知識(shí)算出新的基向量。從i分量開始,分量就是cosθ,y分量就是sinθ,轉(zhuǎn)換后的i就是cosθ+sinθ;j分量就等于-cosθ+sinθ。我們就可以把帶入到程序里面去,如圖13。