找到立方体的旋转角度

时间:2015-01-17 17:50:53

标签: matlab math rotation geometry image-rotation

我有一组点(X,Y,Z顶点),我可以从MATLAB中的STL文件中读取。 它们是组成立方体的点。

我想知道这个立方体可以用X / Y / Z轴旋转的角度。

任何人都可以提供任何线索如何做到这一点?

由于

2 个答案:

答案 0 :(得分:1)

首先,您需要为立方体指定坐标系。您可以通过在立方体上选取一个点并在与其连接的三条边上的每一条上绘制一条轴来实现此目的(这些将指向三个最近点的方向)。立方体可以有多种方式与XYZ轴对齐,因此点的选择是任意的。您可以找到距离原点最近的点,或者随机选择一个。

所以现在你有了你的XYZ坐标系(由形成矩阵A的三个列向量给出)和你的立方坐标系(由矩阵C给出)。如果您想要连接到两者的矩阵变换T,您可以求解矩阵方程C = T*A。由于A只是单位矩阵,因此我们有T = C。如果你想要实际的角度,你可以反复使用相同的矩阵反演过程将轴与rotation matrices一一对齐。

答案 1 :(得分:1)

要了解立方体如何相对于X / Y / Z轴旋转,您应首先构建立方体的局部坐标系,这可以通过以下步骤轻松完成,假设您已知道所有8个角点立方体以及它们如何相互连接以形成立方体。

1)从8个点中挑选任意一点,将其表示为P0。

2)应该有3个其他点连接到P0。将这3个点表示为P1,P2和P3。

3)创建从P0到P1,P2和P3的向量,并将这3个向量单元化。这3个单位矢量,表示为v1,v2和v3,应该彼此正交,并且可以用作立方体的局部坐标系。您可以将v1,v2和v3指定为本地坐标系的x,y和z轴,但是您需要确保它们遵循右侧规则。

4)现在,您拥有局部坐标系,可以轻松计算相对于原始坐标系的角度。