我正在使用Unity3D游戏引擎和C#制作游戏。
在我的游戏中,我有两个3d矢量,A-B和C-D。我想确定角度E,但我不知道足够的几何和数学来弄清楚如何。
我想做的是...... 将矢量C-D投影到与A-B垂直的平面上。 然后测量该投影矢量与另一个矢量之间的平面上的角度,该矢量表示平面与另一个具有完全平坦方向的平面之间的交点。
在你的回答中,如果你把方程写成好像是代码(即这个变量乘以这个除以此等等),而不是我不知道的数学符号,我会很感激。
答案 0 :(得分:1)
首先,我们在与cd
平行的部分和正交部分中分解ab
。通过减去平行部分,我们得到剩余的正交部分,它等于所需平面上的投影:
cdProj = cd - dot(ab, cd)/dot(ab, ab) * ab
然后由反正弦给出所需的角度:
e = asin(cdProj.y / length(cdProj))