遊戲開發中的數學和物理算法(13):點積和叉積
代數中的乘法應稱爲數乘,比如2×3=6,2·3=6。但是在幾何中2·3爲點積,2×3爲叉積。
1.點積
A·B=|A| |B| cosq
2D:定義矢量A[a1,a2],矢量B[b1,b2] ;那麼點積A·B=a1b1+a2b2。
3D:定義矢量A[a1,a2,a3],矢量B[b1,b2,b3] ;那麼點積A·B=a1b1+a2b2+a3b3。
性質:
如果A·B = 0, 那麼A┴B。
A·B = B· A。
如果 A·B < 0 (負), 那麼q > 90°
如果 A·B > 0 (正), 那麼q < 90°
C · D=5(6) + 3(–2) = 30 – 6 = 24
2.叉積
矢量A = [a1 a2 a3] 和矢量 B = [b1 b2 b3]。
A x B = [(a2b3 – a3b2) (a3b1 – a1b3) (a1b2 – a2b1)]
叉積是矢量(有大小和方向)。
A x B 不等於 B x A。
A × B=0說明A和B平行。
|A×B|=|A||B|sinq