C++ 基于方向向量的三维旋转
我有一个对象在三维空间中移动(原点在中心)。我正在计算移动时的方向向量,并使用它在对原点处的对象进行任何变换之前应用旋转C++ 基于方向向量的三维旋转,c++,math,C++,Math,我有一个对象在三维空间中移动(原点在中心)。我正在计算移动时的方向向量,并使用它在对原点处的对象进行任何变换之前应用旋转 direction vector (position, previousPos): positionX-previousPosX/mag etc transformation rX = acos(direction_vector_x); etc rY = acos(direction_vector_y); rZ
direction vector (position, previousPos): positionX-previousPosX/mag etc
transformation
rX = acos(direction_vector_x); etc
rY = acos(direction_vector_y);
rZ = acos(direction_vector_z);
rotate(rZ, rX,rY) // axis rotation
draw object
对象最初处于位置,但随后随机出现在对角线上,并以错误的方式出现。之后,旋转是平稳的,但有时会向后或颠倒?有人能告诉我怎么计算吗?谢谢 仅从单个矢量创建三维坐标系是不够的
- 您至少需要一个与方向不平行的向量,如“向上”或“北”向量
- 然后使用叉积生成两个相互垂直的向量和方向
- 因为你有3个轴,原点也应该是已知的
- 因此,构造变换矩阵并使用它代替欧拉角
- 看