1

我目前正在根据一篇科学论文实施一种用于 3D 点云过滤的算法。

在计算特定值的旋转矩阵时,我遇到了一些问题。目标是将点旋转到由法线向量(Z 轴)的方向定义的坐标系中。由于以下查询在 X、Y 轴上旋转对称,因此这些轴的方向无关紧要。R 定义如下:Rotationmatrix

    [1      1  -(nx+ny)/nz]
R = [  (row1 x row3)'     ]
    [nx      ny      nz   ]

n 被归一化。当 n_z 变得非常小或为零时,就会出现问题。因此,我考虑在计算第 2 行的叉积之前对第 1 行进行归一化。

然而,行列式变为-1。旋转矩阵会导致正确的结果吗?R 是正交的,但 det|R| 不 +1

感谢您的任何建议

4

2 回答 2

1

你总能明白

det(a, a×b, b) = - det( a, b, a×b) 
= - dot(a×b, a×b) 

总是消极的。因此,您需要通过否定它或重新排列行的整体顺序来更改第二行。

于 2016-08-02T15:41:33.537 回答
-1

您对围绕任意轴旋转点感兴趣吗?如果是,也许四元数是很好的解决方案。如果您想在实际使用之前将四元数转换为矩阵,您可以检查它。

于 2016-08-02T12:31:35.340 回答