1.向量點積意義
①二維向量A和B點積(結果為標量)定義為:A.dot(B) = |A|*|B|*cos(a)
比較重要的用途(數學意義)為:
②得到向量夾角。(根據cos(a)計算得到)
③得到對應單位分量上的長度。(當向量B為單位向量時,則|A|*cos(a)表示向量A在向量B上的單位分量)
可用於凸多邊形的碰撞檢測(分離軸定理)
2.向量叉積意義
①二維向量A和B叉積(結果為標量)定義為:A.cross(B) = |A|*|B|*sin(a)
比較重要的用途(數學意義)為:
②得到向量夾角。(根據sin(a)計算得到)
③得到的兩個向量組成的三角形面積S=A.cross(B)/2
④得到兩個向量之間的順逆關系:> 0 表示 A在B的順時針方向; <0表示A在B的逆時針方向; =0 表示則為共線向量(有可能同向,有可能反向);
⑤由上面兩個向量之間的結果,從同一點出發的兩個向量,就可以得到點和線之間的位置(點在線的左右或者在線上)關系。
可用於凸多邊形的碰撞檢測(射線檢測):其核心的思路是,判斷這個點,和多邊形每條邊的位置關系。在一個多條邊圍成的區域,點在一條邊的右側,這個點可能在多邊形內部,也可能在外部。但是如果判斷完點和每一條邊的左右關系,如果在右邊的邊是奇數個,那么點就在內部,如果是偶數,那么點就在外部。通過這個規則,就可以判斷,點和多邊形的碰撞關系。有兩個注意點,多邊行必須是凸多邊形,並且如果點落在邊上,我們算在左邊,這樣落在邊上是算在內部。
詳情可參看《C 實現射線檢測多邊形碰撞》
3.三維向量叉積(結果為向量),得到一個垂直於另外兩條向量所組成平面的向量。