我有两组限制在3D单位球体上生存的点,称它们为{pi}和{qi}(我假设对应是已知的)。目标是通过旋转和翻译将一组注册到另一组。通常我会使用表格的转换:
P = RQ + T
其中R是旋转矩阵,T是平移向量。
但是在这种情况下,存在一个额外的约束,即所有点都必须存在于球体上,我该如何包含这个条件。
答案 0 :(得分:1)
假设这些集合是“刚性的”,那么您可以在球体上滑动和旋转整个集合,但不能改变集合中各点之间的距离,所有可能的变换都是旋转。
无论何时相对于某个轴旋转设置,点都会在垂直于轴的平面中移动。因此,所有位移都是垂直于轴向量的向量。因此,每两个位移矢量应该使矢量积平行于轴矢量。
现在,如果您已经知道P和Q点之间的对应关系,请计算从每个 qi 到相应的 pi 的位移矢量 di 和计算一些矢量产品:
di × dj =( pi - qi )×( pj - qj )
如果它们的方向彼此足够接近,则可以假设您具有旋转轴。
现在对于每一对或 pi,qi 在轴上找到一个点 ti ,使得PQT三角形垂直于轴。 T顶点处的角度定义了将 qi 滑动到 pi 的旋转。如果所有相应的角度相等,那么你就完成了。否则你将不得不寻求一些近似的解决方案......