二、點積和叉積。
點積(Dot product)編程時計算點積,並不需要知道θ。因爲如果已知 A=(Ax,Ay),B=(Bx,By)那麼就有:A•B=AxBx+AyBy。
double Dot(Vector A,Vector B){return A.x*B.x + A.y*B.y;}
叉積(Cross product)它的計算公式是:A×B=∣A∣∣B∣sinθ,其中θ 表示向量 A 旋轉到向量 B 所經過的夾角。兩個向量的叉積是一個帶正負號的數值
double Cross(Vector A,Vector B){return A.x*B.y – A.y*B.x;}
點積應用:
- 判斷A和B的夾角是鈍角還是銳角。
- 求向量A的長度。
- 求向量A與B的夾角大小。
叉積應用:
- 判斷A與B的方向關係。
- 計算倆向量構成的平行四邊形又向面積。
- 計算三點構成的三角形的面積。
- 向量旋轉。
- 用叉積檢查倆個向量是否平行或重合。