天天看點

3D數學四元數

向量的叉乘(外積/叉積):

a(ax, ay, az)

b(bx, by, bz)

a x b = c (aybz – azby, axbz – azbx, axby - aybx)

兩個向量叉乘的幾何意義:

得到一個新的向量,c向量,c向量同時垂直于a向量和b向量。垂直于a向量和b向量所組成的平面,我們也把c向量叫做那個平面的法向量。

向量的叉乘不滿足乘法交換律,但是有一定的規律:

a x b = - (b x a)  互為負向量。

c向量的模長 = |a||b|sin<a,b>

四元數:

複數(虛數):是一個複合型的數,是由實數部分(實部)和虛數部分(虛部)組成,當實部為0,這個複數就變成了純虛數,當虛數部分為0,這個複數就變成了實數。

虛數:我們将一個數的平方等于-1,那麼這個數就是虛數機關。

實數:有理數和無理數的集合。

有理數:一切有道理的數 — 有限數和無限循環小數

無理數:沒有道理的數 — 無限不循環數。

四元數是一種超複數:x y z w  其中w是實部,剩下的x y z 都是虛部,我們就可以把四元數表示為:

Q = w + xi + yj + zk (其中ijk全是虛數機關)

四元數是數學家漢密爾頓最先推導,為了表示旋轉,四元數中存儲着的是一對兒 軸角對兒,含義是繞着某根軸,旋轉…度角。

那麼這軸角對是如何存儲在四元數的四個分量中的呢?????

<n(x,y,z),θ>

在四元數中:

x = n.x * sin(θ/2)

y = n.y * sin(θ/2)

z = n.z * sin(θ/2)

w = cos(θ/2)

複數運算法則:

加法: (a + bi) + (c + di) = (a + c) + (b + d)i

減法:   (a + bi) - (c + di) = (a - c) + (b - d)i

乘法: (a + bi) * (c + di) = (ac - bd) + (ad + bc)i

q

四元數的模 = sqrt(x^2 + y^2 + z^2 + w^2),模長為1的四元數我們稱之為标準四元數。

機關四元數:(0,0,0,1) 幾何意義:無旋轉。

共轭四元數:将原四元數的虛數部分取負。反向旋轉。

四元數的逆 = 共轭四元數/四元數的模。q^-1 * q = 機關四元數

四元數的乘法:

Q1 = (v1, w1)

Q2 = (v2, w2)

Q1 * Q2 = (w1 * v2 + w2 * v1 + v1 x v2, w1 * w2 - v1·v2)

四元數和四元數相乘代表的幾何意義是讓旋轉量進行疊加

四元數和Vector3進行相乘幾何意義是

如果Vector3是一個坐标點,讓坐标點繞着四元數中的軸角對進行旋轉。

如果Vector3是一個向量,讓向量繞着過向量起點的軸角對進行旋轉。