向量運算(lua,三維) 點乘 叉乘 模 夾角

2022-04-28 15:42:08 字數 2062 閱讀 8112

向量運算在遊戲製作中經常用到,稍微總結一下。

一、點乘

如圖,假設

向量a與b的點乘表示a在b上的投影與b的模的乘積

公式:

end二、叉乘向量的叉乘,即求同時垂直兩個向量的向量公式:**:

--向量叉乘

function mathhelper.getvector3cross(v1, v2)

local v3 =

return

v3end

三、模向量的長度公式:

**:

--向量的模

function mathhelper.getvector3module(v)

return math.sqrt(v.x * v.x + v.y * v.y + v.z *v.z)

end

四、夾角公式:

**:

--求兩向量間夾角

function mathhelper.getvector3angle(v1, v2)

local cos = mathhelper.getvector3dot(v1, v2)/ (mathhelper.getvector3module(v1)*mathhelper.getvector3module(v2))

return math.acos(cos) * 180 /math.pi

end

完整**:

1 mathhelper ={}2--

向量點乘

3function

mathhelper.getvector3dot(v1, v2)

4return v1.x * v2.x + v1.y * v2.y + v1.z *v2.z

5end67

--向量叉乘

8function

mathhelper.getvector3cross(v1, v2)

9local v3 =

10return

v311

end12

13--

向量的模

14function

mathhelper.getvector3module(v)

15return

math.sqrt(v.x * v.x + v.y * v.y + v.z *v.z)

16end

1718

--求兩向量間夾角

19function

mathhelper.getvector3angle(v1, v2)

20local cos = mathhelper.getvector3dot(v1, v2)/ (mathhelper.getvector3module(v1)*mathhelper.getvector3module(v2))

21return

math.acos(cos) * 180 / math.pi

22end

view code

向量 向量叉乘 向量點乘

向量 向量叉乘 向量點乘 2010年07月28日 星期三 14 33 向量 vector 在幾乎所有的幾何問題中,向量 有時也稱向量 是乙個基本點。向量的定義包含方向和乙個數 長度 在二維空間中,乙個向量可以用一對x和y來表示。例如由點 1,3 到 5,1的向量可以用 4,2 來表示。這裡大家要特別...

向量點乘與叉乘

點乘 dot product 點乘,也叫向量的內積 數量積。顧名思義,求下來的結果是乙個數。向量a 向量b a b cos 在物理學中,已知力與位移求功,實際上就是求向量f與向量s的內積,即要用點乘。將向量用座標表示 三維向量 若向量a a1,b1,c1 向量b a2,b2,c2 則 向量a 向量b...

向量點乘與叉乘

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!向量 vector 在幾乎所有的幾何問題中,向量 有時也稱向量 是乙個基本點。向量的定義包含方向和乙個數 長度 在二維空間中,乙個向量可以用一對x和y來表示。例如由點 1,3 到 5,1的向量可以用 4,2 來表示。這裡大家要特別注意,我這樣說並不...