1. 程式人生 > >Unity3d 三維空間,向量,矩陣

Unity3d 三維空間,向量,矩陣

Vector3:  Unity3D中Vector3類定義(只寫有用的):  屬性:  x,y,z                表示一個空間向量。  this                       用於訪問x,y,z三個資料使用陣列的方式訪問,比如[0][1][2]  normalized            返回單位化向量後的值(只讀)。單位化向量是個很重要的概念,他常常是各種計算的基點,他保證了在不改變方向的前提下,使向量長度變為1。公式如下:  magnitude              返回向量長度值(只讀),這詞取得真怪,反正就是向量的模運算,得到向量的長度。公式就是x平方+y平方+z平方然後根號便是。這都不記得了趕緊回家面壁。  sqrmagnitude         返回向量的平方長度(只讀)。上面那個不開根號就是了。  方法:  Scale(a:vector3,b:vector3):vertor3  縮放,返回a的每個座標乘以b的相對應的每個座標。注意他是靜態函式。  Normalize() 向量化,注意magnitude向量長度會變為1.  類特有的一些屬性(直接粘help的了):  zero      Shorthand for writing Vector3(0, 0, 0)  one       Shorthand for writing Vector3(1, 1, 1)  forward   Shorthand for writing Vector3(0, 0, 1)  up        Shorthand for writing Vector3(0, 1, 0)  right     Shorthand for writing Vector3(1, 0, 0)  Maxtrix4*4:  矩陣也是3D圖形學一個重要的概念,在D3D裡用的很平凡,但是U3D裡好像都已經封裝到各個Object上去了,所以很容易忽視掉,但不能忽視它的存在。在3D世界裡,每個物體均有自身的世界矩陣,攝像機有攝像機矩陣,投影場景有projection矩陣,對頂點、向量、物體實施各種平移、旋轉、縮放都是通過矩陣來完成的。計算機3D物體的標準4×4矩陣是這樣定義的:(表示不出來矩陣大括號,請讀者就當左4行的[和右4行的]當成一對大括號)                    [ x,  y  ,z  ,0]    <-  物體的右方向向量                    [ x,  y  ,z  ,0]    <-  物體的上方向向量                    [ x,  y  ,z  ,0]    <-  物體的前方向向量                    [ x,  y  ,z  ,1]    <-  物體所在的座標  注意:前三行的座標一定是互有90度的,(除非特殊情況,例如空間扭曲之類的=.=)因為他們是物體的三個座標軸。第四列的 0 0 0 1 是為了補齊4*4矩陣,為了計算方便而已。  矩陣一樣有單位矩陣和0矩陣,  [1 0 0]  [0 1 0]   其他的我就不說了,在Unity裡頭是完全封裝的(見Transform)  [0 0 1]