【发布时间】:2016-03-27 07:24:05
【问题描述】:
【问题讨论】:
标签: math matrix geometry computer-vision
【问题讨论】:
标签: math matrix geometry computer-vision
令 A 为定义两个坐标系之间关系的 4x4 矩阵。
那么两者的夹角为:
θ = arcos(trace(A)/2.0)
【讨论】:
我写了一篇关于它的文章,用源代码演示了如何做到这一点。简短的回答是你用不同轴的点积构建一个 3x3 矩阵
http://www.meshola.com/Articles/converting-between-coordinate-systems
【讨论】:
我认为基础的改变可以帮助你Wiki Link。它很容易实现。
【讨论】:
所描述的问题可以解决如下。让
M = m_11 m_12 m_13
m_21 m_22 m_23
m_31 m_32 m_33
表示所需的旋转矩阵。我们需要
1 0 0 * M + t = x_x x_y x_z
0 1 0 y_x y_y y_z
0 0 1 z_x z_y z_y
其中t 表示翻译;我们看到,这个矩阵等式可以通过从左边乘以单位矩阵来解决,单位矩阵是它自己的逆矩阵;因此我们得到以下等式。
M + t = x_x x_y x_z
y_x y_y y_z
z_x z_y z_y
这可以通过从两边减去t来重新排列,得到所需的矩阵M,如下所示。
M = x_x x_y x_z - t = x_x-t_x x_y-t_y x_z-t_z
y_x y_y y_z y_x-t_x y_y-t_y y_z-t_z
z_x z_y z_y z_x-t_x z_y-t_y z_z-t_z
请注意,这相对容易,因为初始矩阵由标准基的基本向量组成。一般来说,它比较困难,涉及basis transformation,基本上可以通过Gaussian elimination完成,但在数值上可能很难。
【讨论】:
t 是否表示涉及翻译?这是有道理的,但是最初的问题只需要轮换。