1. 程式人生 > >向量知識總結

向量知識總結

vector OS RM 知識總結 之間 ros 其中 沒有 平面

1. 向量a·向量b=| a |*| b |*cos<a,b>
Θ為兩向量夾角
| b |*cosΘ叫做向量b在向量a上的投影
| a |*cosΘ叫做向量a在向量b上的投影

2.理論知識

在數學中,點積的定義為a·b=|a|·|b|cos<a,b> 【註:粗體小寫字母表示向量,<a,b>表示向量a,b的夾角,取值範圍為[0,π]】。從定義上,我們知道向量的點積得到的是一個數值。而不是向量(這點大家要註意了!要與叉積進行區別)。另外點積中的夾角<a,b>沒有順序可言,即<a,b>=<b,a>(或a·b=b·a)。所以我們可以通過點積得到兩個向量之間的夾角。<a,b>= arccos(a·b / (|a|·|b|))。並且通過點積的正負值,我們可以判斷兩個向量的方向關系。如果為正,即>0,他們夾角為(0,π/2)。如果為負,夾角為(π/2,π)。

3.

//向量a,b的夾角,得到的值為弧度,我們將其轉換為角度,便於查看!
float angle=Mathf.Acos( Vector3.Dot(a.normalized,b.normalized))*Mathf.Rad2Deg;

4. 理論知識

數學上的定義:c=axb【註:粗體小寫字母表示向量】其中a,b,c均為向量。即兩個向量的叉積得到的還是向量!

性質1:c⊥a,c⊥b,即向量c垂直與向量a,b所在的平面。

性質2:模長|c|=|a||b|sin<a,b>

性質3:滿足右手法則。從這點我們有axb ≠ bxa,而axb = - bxa。所以我們可以使用叉積的正負值來判斷向量a,b的相對位置,即向量b是處於向量a的順時針方向還是逆時針方向

5. float angle = Mathf.Asin(Vector3.Distance(Vector3.zero, Vector3.Cross(a.normalized, b.normalized))) * Mathf.Rad2Deg;

向量知識總結