ベクトル演算(LUA、D)ドット、クロス積、金型、角

ベクトル演算は、頻繁にゲーム制作、少し要約で使用されます。

まず、ドット

 

 

 示されるように、それが仮定されます  

 

 

ベクトルドット積のBは、B、B金型の投影を示します

公式:

 

 

 

 

 

 コード:

機能MathHelper.GetVector3Dot(V1、V2)
     リターン V1.X * v2.xの+ v1.y * v2.y + v1.z * v2.z 
終了

 

第二に、外積

外積ベクトル、すなわち、Aベクター垂直同時に二つのベクトルを見つけるために

公式:

 

 

コード:

- 向量叉乘
機能MathHelper.GetVector3Cross(V1、V2)
    ローカルV3 = {X = v1.y * v2.z - v2.y * v1.z、Y =バージョン2.x * v1.z-V1.X * v2.z、Z = V1.X * v2.y-バージョン2.x * v1.y}
     戻りV3の

 

第三に、金型

 ベクトルの長さ

公式:

 

 

 コード:

- ベクトルのノルム
機能MathHelper.GetVector3Module(V)
    リターン Math.sqrt(VX * Vyの* VX + VZ + Vyの* VZ)
終了

 

第四に、角度

公式:

 

 

 コード:

- 2つのベクトル間の角度を求めること
MathHelper.GetVector3Angle(V1、V2)機能
    ローカルCOS = MathHelper.GetVector3Dot(V1、V2)/(MathHelper.GetVector3Module(V1)* MathHelper.GetVector3Module(V2))
     リターン Math.acos(COS )* 180 [ / にMath.PI 
終了

 

完全なコード:

1 MathHelper = {}
 2  - ベクトルドット
。3  機能MathHelper.GetVector3Dot(V1、V2)
 。4      リターン V1.Xバージョン2.x + * + V1.z V1.y * v2.yのv2.z
 。5  終了
6。 
7。 - ベクトル外積
。8  関数MathHelper.GetVector3Cross(V1、V2)
 9。     ローカル V3 = {X * = V1.y v2.z - v2.y V1.z *、Y * =バージョン2.x V1.z-V1。 * v2.z X、Z = V1.X * v2.y-バージョン2.x V1.y}
 10      リターンV3
 。11  エンド
12は、 
13である - ベクトルのノルム
14  機能MathHelper.GetVector3Module(V)
 15     リターン Math.sqrt(VX * Vyの* VX + VZ + Vyの* VZ)
 16  エンド
17。 
18は、 - 2つのベクトル間の角度を求める
。19  機能MathHelper.GetVector3Angle(V1、V2)
 20は、     ローカル COS MathHelper.GetVector3Dot =(V1、V2 )/(MathHelper.GetVector3Module(V1)* MathHelper.GetVector3Module(V2))
 21が     リターン Math.acos(COS)* 180 / にMath.PI 
22は エンド
コードの表示

 

おすすめ

転載: www.cnblogs.com/yougoo/p/11918583.html