作為半路出家的unity程式,必須要補一補3d數學相關的基礎。
在遊戲中,運用的比較多的就是三維向量了。
三維向量中,比較常見的操作有:
1.求兩點距離
這個比較簡單,直接使用目標點各個座標分量相減,然後利用勾股定理求取長度即可。math.sqrt(x*x+y*y+z*z);
2.求兩向量夾角
求向量夾角,則需要使用到向量點乘方式。假設有兩個向量a,b, a和b的點乘可視為a的模乘以b的模,再乘以角度的cos值
a*b = |a|*|b| * cos角度;夾角可以從這取出
3.求乙個向量在另外乙個向量的左方還時右方
求取向量在左還是在右,需要用到向量叉乘公式。兩向量叉乘的結果是另外乙個同時垂直於這兩個向量的另外乙個向量,即兩向量所在面的法線。可根據該法線方向的正負判斷在左還是在右。
例a=[1,0,1] b=[2,0,1]; c= [-1,0,1]
a和b叉乘結果為[0,1,0],y軸大於0,在右
a和c叉乘結果為[0,-2,0],y軸小於0,在左
4.求乙個向量的標準化,即與所求向量方向相同,長度為一的另外乙個向量。
直接以向量本身除以向量的模,即為該向量的標準化向量。
3D數學基礎 向量
vector3.h hello 注釋 是否需要const修飾就是分析其資料是否需要修改,不需要修改就加const,安全性 一般有兩個地方需要考慮是否加const 1,成員函式引數處 2,成員函式本身,即類本身資料不允許修改 修飾的是this ifndef hello vector3 h define...
3D數學基礎
vector是向量,向量的意思,向量既有大小,又有方向,verctor3 就是三維向量,乙個三維向量會有三個分量,分別是 x,y,z,在 unity 中每乙個遊戲物件都至少會有乙個元件叫 transform,transform 主要用來控制遊戲物件的位置,旋轉和縮放。vector3.distance...
3D遊戲引擎數學基礎3 向量(下篇)
向量數乘 標量可以與向量相乘,可以直觀聯想到,該運算可以對向量進行縮放。該運算不改變向量的方向,除非標量是負數,這樣向量的方向與原來的方向相反。k u k ux,k uy,k uz 在unity引擎中有對物體進行縮放的功能,其提供在三個座標軸上的縮放,其底層的運算估計就是向量數乘。於是,有需要過載一...