游戏开发中的数学和物理算法(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