2015-06-16 51 views
1

我正在使用Unity3D游戏引擎和C#制作游戏。将矢量映射到平面上并获得它与其他平面交叉点之间的角度

在我的游戏我有两个三维向量,A-B和C-d。我想确定角度E,但我不知道足够的几何和数学来解决问题。 enter image description here

我想要做的是...... 将矢量C-D投影到与A-B垂直的平面上。 然后测量此投影向量和另一个向量之间的平面上的角度,该向量表示平面与另一个具有完全平坦方向的平面之间的交点。

在你的答案我会很感激,如果你写的公式,如果他们的代码(即这个变量乘以这个本等划分),而不是数学符号,我不知道。

回答

1

首先,我们在与ab平行的部分和正交部分中分解cd。通过减去平行部分中,我们获得剩余的正交部这相当于所期望的平面上的投影:

e = asin(cdProj.y/length(cdProj)) 

cdProj = cd - dot(ab, cd)/dot(ab, ab) * ab 

的期望的角度,然后简单地通过反正弦给出

相关问题