資訊內(nèi)容
用python和pygame游戲編程入門-認(rèn)識向量
我們先考慮二維的向量,向量的表示和坐標(biāo)很像,(10,20)對坐標(biāo)而言,就是一個固定的點,然而在向量中,它意味著x方向行進10,y方向行進20,所以坐標(biāo)(0,0)加上向量(10,20)后,就到達了點(10,20)。
向量可以通過兩個點來計算出來,如下圖,A經(jīng)過向量AB到達了B,則向量AB就是(30, 35) – (10, 20) = (20, 15)。我們也能猜到向量BA會是(-20, -15),注意向量AB和向量BA,雖然長度一樣,但是方向不同。
向量運算
我們觀察下圖,點A出發(fā),通過向量AB到達B點,B通過BC到達C;由A出發(fā)的話,經(jīng)向量AC就直接到達C。
由此我們得到一個顯而易見的結(jié)論向量AC = 向量AB + 向量BC。向量的加法計算方法呼之欲出:
(20, 15) + (-15, 10) = (20-15, 15+10) = (5, 25)
把各個方向分別相加,我們就得到了向量的加法運算法則。很類似的,減法也是同樣,把各個方向分別想減。
有加減法,那乘除法呢?
用一個向量來乘(除)一個數(shù),其實際意義就是,向量的方向不變,而大小放大(縮小)多少倍。
向量的運算被廣泛的用來計算到達某個位置時的中間狀態(tài),比如我們知道一個角色從A到B,中間有10幀,那么很顯然的,把向量通過(B-A)/10計算出來,每次將角色移動到當(dāng)前位置就可以了,很簡單吧?
本站部分內(nèi)容轉(zhuǎn)載自網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系管理員及時刪除。
