我有一个单位立方体的正交投影,其顶点之一位于原点,如上所示。我有投影的 x,y(无 z)坐标。我想计算平面的旋转角度以从第一个正交投影(可能是欧拉角??)
有没有其他简单的方法来计算这个?
更新:
我可以使用这个旋转矩阵来获得 cos、sin 角和 x,y 和 x',y' 的方程组并轻松求解它们吗?或者有没有更简单的方法来恢复角度?(我是否在正确的方向来解决这个问题?)
我有一个单位立方体的正交投影,其顶点之一位于原点,如上所示。我有投影的 x,y(无 z)坐标。我想计算平面的旋转角度以从第一个正交投影(可能是欧拉角??)
有没有其他简单的方法来计算这个?
更新:
我可以使用这个旋转矩阵来获得 cos、sin 角和 x,y 和 x',y' 的方程组并轻松求解它们吗?或者有没有更简单的方法来恢复角度?(我是否在正确的方向来解决这个问题?)
使用这个想法来生成方程:
a1、a2 和 a3 是原始系统中的坐标,xy 是您从最终结果中获得的坐标,z 是您不知道的坐标。这会为立方体的每个点生成 2 个方程。例如,对于坐标为 (-1, -1, 1) 的点 0,这些是:
对立方体的 4 个前端执行此操作,您将得到 8 个方程。现在加上这是一个旋转矩阵的事实 -> 行列式是 1 并且你有 9 个方程。使用任何用于求解方程组的常用算法来解决这些问题,您就有了变换矩阵。通过谷歌很容易获得轴和角度:http ://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToAngle/
分别命名你的点 0、1、2、3 a、b、c、d,你可以b-a
用这个想法得到它们之间的向量的 z 坐标(例如):
b3-a3
不过,如果是肯定的,你仍然需要弄清楚。一种方法是使用最中心点作为 b (计算所有点到中心的距离,使用距离最小的点)。然后你肯定知道这b3-a3
是积极的(如果 z 对你是积极的)。
现在假设a
在您的转换空间中是 (0,0,0),您可以通过向其中添加适当的向量来计算所有点位置。
要获得旋转,您可以使用您知道b-a
原点空间中的位置(例如(1,0,0))的事实。b-a
您可以通过和的点积获得旋转角度,通过(1,0,0)
这些向量之间的叉积获得旋转轴。