Math 将向量映射到平面上,并获取它和其他平面交点之间的角度

Math 将向量映射到平面上,并获取它和其他平面交点之间的角度,math,vector,geometry,Math,Vector,Geometry,我正在用Unity3D游戏引擎和C#制作一个游戏 在我的游戏中,我有两个3d向量,A-B和C-D。我想确定角度E,但我不知道足够的几何和数学来计算如何。 我想做的是。。 将向量C-D投影到垂直于a-B的平面上。 然后测量该投影矢量与另一个矢量之间的平面角度,该矢量表示该平面与另一个方向完全平坦的平面之间的交点 在你的回答中,如果你把方程写成代码(即,这个变量乘以这个除以这个等),而不是我不知道的数学符号,我将不胜感激。首先,我们将cd分解为一个平行于ab的部分和一个正交部分。通过减去平行部分,

我正在用Unity3D游戏引擎和C#制作一个游戏

在我的游戏中,我有两个3d向量,A-B和C-D。我想确定角度E,但我不知道足够的几何和数学来计算如何。

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


在你的回答中,如果你把方程写成代码(即,这个变量乘以这个除以这个等),而不是我不知道的数学符号,我将不胜感激。

首先,我们将
cd
分解为一个平行于
ab
的部分和一个正交部分。通过减去平行部分,我们得到剩余的正交部分,它相当于在所需平面上的投影:

cdProj = cd - dot(ab, cd)/dot(ab, ab) * ab
所需角度由反正弦给出:

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