一碎乃、向量的幾何意義
1则酝、向量的加法和減法
向量a和向量b相加的幾何解釋為:平移向量悔据,使向量a的頭連接向量b的尾庄敛,接著從a的尾向b的頭畫(huà)一個(gè)向量。這就是向量加法的“三角形法則”
798142-20161210161040694-1768063304.png
- 計(jì)算一個(gè)點(diǎn)到另一個(gè)點(diǎn)的位移是一種非常普遍的需求科汗,可以使用三角形法則和向量減法來(lái)解決這個(gè)問(wèn)題藻烤,如: 上圖 d - c 計(jì)算出 c 到 d 的位移向量。
2头滔、向量點(diǎn)乘
當(dāng)兩個(gè)向量都為單位向量時(shí)隐绵,余弦的定義就表示為第一個(gè)向量在第二個(gè)向量上面的投影長(zhǎng)度
幾何解釋?zhuān)阂话銇?lái)說(shuō),點(diǎn)乘結(jié)果描述了兩個(gè)向量的“相似”程度拙毫,點(diǎn)乘結(jié)果越大依许,兩個(gè)向量越相近.
計(jì)算角度:
點(diǎn)乘結(jié)果>0,即小于90°缀蹄,面向
點(diǎn)乘結(jié)果<0峭跳,即大于90°膘婶,背向
點(diǎn)乘結(jié)果=0,即兩向量互相垂直
點(diǎn)乘結(jié)果 = 1蛀醉,即方向相同悬襟,平行
點(diǎn)乘結(jié)果 = -1,即方向相反拯刁,反向平行
應(yīng)用場(chǎng)景:檢測(cè)目標(biāo)是否背向自己(背向是方向夾角在90-180之間)
點(diǎn)乘判斷角度
點(diǎn)乘計(jì)算的角度跟Vector.Angle結(jié)果一致脊岳,都是0-180度,用哪個(gè)都可以垛玻。
public Transform trans00;
public Transform trans01;
void Update()
{
float cosAngle = Vector3.Dot(trans00.forward.normalized, trans01.forward.normalized);
float angleDot = Mathf.Acos(cosAngle) * Mathf.Rad2Deg;
float angleVector = Vector3.Angle(trans00.forward, trans01.forward);
print(angleDot);
print(angleVector);
}
3割捅、向量叉乘
得到的結(jié)果垂直于輸入的兩個(gè)向量,參數(shù)順序決定方向的正反
叉乘判斷物體在自己左邊還是右邊(順時(shí)針/逆時(shí)針)
public Transform trans00;
public Transform trans01;
void Update()
{
Vector3 result = Vector3.Cross(trans00.position, trans01.position);
print(result);
if (result.y == 0)
{
print("trans01在trans00前方的這條線上");
}
else if (result.y > 0)
{
print("trans01在右側(cè)");
}
else if (result.y < 0)
{
print("trans01在左側(cè)");
}
}