我有一个以奇怪的角度旋转的 3d 平面(由多个点组成)。我想让它变平,即躺在 xy 平面上。我有平面方程,但我认为我计算的角度不正确或者可能使用了错误的旋转矩阵。错误的旋转矩阵是指我不确定应该旋转哪个轴。附上我的飞机照片:
我尝试使用以下公式计算:
- theta=-acosd((dot(n1,n2))/(norm(n1)*norm(n2)));
- 计算球面角:theta 和 phi;
两种方法都给出了相同的角度,我首先围绕 z 轴旋转我的平面,然后围绕 y 轴旋转。生成的平面几乎是平的,但仍有一些角度。
我尝试了旋转矩阵和罗德里格斯旋转矩阵。如果有人可以建议如何旋转这架飞机以使其平坦,那将非常有帮助。
最佳答案
当一个平面不平行于 xy 平面时,它的法向量将不平行于 z 轴。所以法向量和 z 轴(单位)向量的叉积将不为零。该矢量在平面内并平行于 xy 平面。以此为旋转轴。使平面与xy平面平行的旋转角度等于法向量与z轴的夹角。
关于matlab - 如何旋转 3D 平面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47088253/