如果我有一组任意点,然后同一组点旋转一定程度,有没有人知道任何算法来计算/估计旋转中心的位置?还是需要这些算法的研究领域? 我无法找到任何相关信息。
谢谢
如果我有一组任意点,然后同一组点旋转一定程度,有没有人知道任何算法来计算/估计旋转中心的位置?还是需要这些算法的研究领域? 我无法找到任何相关信息。
谢谢
假设你有一个点(x,y),它移动到(x',y')。
然后旋转中心必须位于垂直于(x,y) - (x',y')的直线上,并且与中心(x,y) - (x',y')相交。
现在采取另一个点,(x2,y2),移动到(x'2,y'2)。这也产生了旋转中心必须位于其上的线。
现在取这两行并计算交点。那里有旋转中心。
更新:如果你没有找到哪一点的对应关系,那就不难理解了。这是我头脑中的一个建议:找到“之前”点的质量中心。根据距离此点的距离对点进行排序。现在对“后”点进行相同的操作。现在两组的顺序应该匹配。 (最接近质心的点 之前 旋转,应该是最接近质心的点 后 回转。)
对于这种类型的问题,这将是疯狂的矫枉过正,但我认为的功能 广义Hough变换 对象检测至少包含你想要的东西,即使它并不是为了这个目的。
给定从一组点和另一组任意点创建的任意形状,它会尝试在点集中找到形状,即使它已被旋转,缩放和平移。您可以取出缩放和翻译并获得所需内容。
基本上它将归结为粗暴强迫可能的旋转点,以查看哪一个最适合第二组点。
非常有趣的问题。我对此的了解有点过时,但我记得,有一些关于使用子图分析的研究;也就是说,通过点之间的距离和其中的方差来表征点集的子部分,然后在旋转之前和之后关联那些子图分析。
当然,这是假设具有不均匀分布的非常复杂的点集。
您需要在数据集上找到一些签名,以便识别第一组(A)中的点和第二组(B)上的点。
一个简单的方法如下:
对于A中的每个元素E,找到两个最近点(N1,N2)并计算N1,E,N2之间的角度,得到三个值:角度和从E到N1和N2的距离(ang,d1,d2) 。
在A中找到3个具有唯一元组(ang,d1,d2)的点。
对于B中的每个元素,还要计算到两个最近邻居的距离和角度。找到与A中选择的那些相匹配的3个点。
计算旋转只是几何分析的问题。
更新:您需要3个点来确定3D空间中的旋转。在2D中,两个会做。
更新2:正如其他人对其他帖子所评论的那样,A中可能存在对称性,会阻止你找到(ang,d1,d2)的3个独特三元组。在这种情况下,对于A中所选择的三个点中的每一个,您将必须搜索B中与其三元组匹配的所有元素,直到某些组合产生适用于A中所有元素的旋转。