UNITY3D中涉及的一些數學知識


3D中的法線是什么意思啊~

在空間垂直於一個平面的直線;或者在一個平面里面,垂直於一條直線的直線.法線也可以指的某個方向.對於圓弧來講,指的是它與圓心相連的直線(方向).
法線:英語叫Normal Line.

 

就是一條垂直線,我們可以這樣聯想着記:

法 = 法律,法規,正直 = 垂直

 

 

學習quaternion的一點點筆記

 

http://blog.csdn.net/soilwork/article/details/1447346

 

 

        3D程序中,通常用quaternion來計算3D物體的旋轉角度,與Matrix相比,quaternion更加高效,占用的儲存空間更小,此外也更便於插值。在數學上,quaternion表示復數w+xi+yj+zk,其中i,j,k都是虛數單位:

 

 

 

i*i = j*j = k*k= -1

 

i*j = k, j*i = -k

 

 

 

可以把quaternion看做一個標量和一個3D向量的組合。實部w表示標量,虛部表示向量標記為V,或三個單獨的分量(x,y,z)。所以quaternion可以記為[ w, V][ w,(x,y,x]。對quaternion最大的誤解在於認為w表示旋轉角度,V表示旋轉軸。正確的理解應該是w與旋轉角度有關,v與旋轉軸有關。例如,要表示以向量N為軸,軸旋α度,相對的quaternion應該是:

 

 

 

 

 

q = [ cos(α/ 2) , sin(α/ 2) N]

 

  =[ cos(α/ 2) , ( sina(α/ 2) Nx, sin(α/ 2)Ny, sin(α/ 2)Nz ) ]

 

 

 

 

 

為了計算方便,一般要求N為單位矢量。對quaternion來說使用四個值就能記錄旋轉,而不是Matrix所需的十六個值。為什么用quaternion來計算旋轉很方便呢?先說過quaternion是一個復數,如果你還記得一點點復數的知識,那么應該知道復數乘法(叉乘)的幾何意義實際上就是對復數進行旋轉。對最簡單的復數p= x + yi來說,和另一個復數q = ( conα,sinα)相乘,則表示把p沿逆時針方向旋轉α:

 

 

 

 

 

p’ = pq

 

 

 

 

 

 

 

 

 

當然,x+yi的形式只能表示2D變換,對3D變換來說就需要使用 quaternion了,而且計算也要復雜一點。為了對3D空間中的一個點px,y,z)進行旋轉,需要先把它轉換為quaternion形式p = [0, ( x, y, z)],接下來前面討論的內容,定義q = cos(α/ 2) , sin(α/ 2) N為旋轉quaternion,這里N為單位矢量長度的旋轉軸,α為旋轉角度。那么旋轉之后的點p’則為:

 

 

 

 

 

      p’ = qpq-1

 

 

 

ps:粗體字母表示矢量 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM