欧拉角和挤出方向

时间:2012-02-14 11:13:10

标签: c++

我正在创建一个C ++ ifc导入程序。

我有一个方向向量,我想从中挤出一个部分。该部分本身是一个2d点的列表。 为了计算挤出方向,我必须将非变换方向与变换矩阵相乘。

矩阵在xyz(如欧拉角)中有变换。

我必须计算挤出方向周围的旋转角度。

我有一个矩阵类,它从a返回欧拉角 矩阵:

matrix.ExtractEulerXYZ(x,y,z)

问题在于我可以使用xyz的旋转方向向量,如何选择正确的角度x,{从挤出方向{1}}或y

1 个答案:

答案 0 :(得分:0)

2d点位于2d空间中的位置(x,y)和3d空间中的(x,y,0)。

3d空间中的欧拉角定义了xyz轴的3个旋转,以将xyz轴旋转到指定点。也就是说,如果在x轴上标记x轴上与点的距离正确的点,则沿XY平面旋转轴a,沿ZY平面旋转b,沿ZX平面旋转c。

请参阅http://en.wikipedia.org/wiki/Euler_angles中“与物理运动的关系”部分中的动画 - 特别是,请遵循最初投射到左下角的x轴的进度。

如果您只有2d点,则ZY和ZX旋转不会执行任何操作 - 您只是围绕XY轴旋转。因此,您可以使用简单的三角函数(SOH CAH TOA)来查找从原点到点的线的角度;没有必要使用矩阵。