matlab - 如何旋转 3D 平面?

标签 matlab math 3d rotation

我有一个以奇怪的角度旋转的 3d 平面(由多个点组成)。我想让它变平,即躺在 xy 平面上。我有平面方程,但我认为我计算的角度不正确或者可能使用了错误的旋转矩阵。错误的旋转矩阵是指我不确定应该旋转哪个轴。附上我的飞机照片:

this plane is rotated about  more then one axis

我尝试使用以下公式计算:

  1. theta=-acosd((dot(n1,n2))/(norm(n1)*norm(n2)));
  2. 计算球面角:theta 和 phi;

两种方法都给出了相同的角度,我首先围绕 z 轴旋转我的平面,然后围绕 y 轴旋转。生成的平面几乎是平的,但仍有一些角度。

我尝试了旋转矩阵和罗德里格斯旋转矩阵。如果有人可以建议如何旋转这架飞机以使其平坦,那将非常有帮助。

最佳答案

当一个平面不平行于 xy 平面时,它的法向量将不平行于 z 轴。所以法向量和 z 轴(单位)向量的叉积将不为零。该矢量在平面内并平行于 xy 平面。以此为旋转轴。使平面与xy平面平行的旋转角度等于法向量与z轴的夹角。

关于matlab - 如何旋转 3D 平面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47088253/

相关文章:

文件的计算

opengl - GLSL 中到相机平面的距离为深度

c# - C# 中的高效 AABB/三角形交集

matlab - 如何将文档添加到 matlab 包中?

excel - 当我读入一个变量时,为什么 matlab 返回这个变量?

python - 用于计算 Gamma 指数的库? (最好使用 R 或 Python,但任何语言都可以)

javascript - 获取垂直于AB的坐标

r - 如何更改 ggplot 中的标签(图例)?

python - 给定每条线上的一个点和一个平行向量,如何找到两条线的交点

python - 如何使用 Python 在任意平面内绘制矢量场?