C# 比较两组XY坐标并将其对齐
我有两组X,Y坐标作为单独的列表。两者都表示相同的不规则多边形形状,但方向和大小/比例不同 需要用C#编写一个程序,比较两个点集,旋转任意一个形状,使其和另一个对齐,使它们处于相同的方向 尝试寻找解决方案,并了解到使用带有角度差的凹面外壳可以有所帮助,但无法找到一个适用于相同情况的良好C#实现 有人能帮我吗,如果有一个最小的方法来实现这一点 编辑:两个点集可能不相同。一个可能包含比另一个多的点。 我有一个形状和一个PNG的轮廓坐标,它们的形状相同,但方向不同。我想阅读PNG,计算角度以使其适合轮廓。 为点云计算 使用C# 比较两组XY坐标并将其对齐,c#,geometry,2d,computational-geometry,C#,Geometry,2d,Computational Geometry,我有两组X,Y坐标作为单独的列表。两者都表示相同的不规则多边形形状,但方向和大小/比例不同 需要用C#编写一个程序,比较两个点集,旋转任意一个形状,使其和另一个对齐,使它们处于相同的方向 尝试寻找解决方案,并了解到使用带有角度差的凹面外壳可以有所帮助,但无法找到一个适用于相同情况的良好C#实现 有人能帮我吗,如果有一个最小的方法来实现这一点 编辑:两个点集可能不相同。一个可能包含比另一个多的点。 我有一个形状和一个PNG的轮廓坐标,它们的形状相同,但方向不同。我想阅读PNG,计算角度以使其适合轮
Theta
角度评估两个云的方向
通过θ差旋转一个云
使用其他力矩(质心等)查找平移和缩放您可以先计算到两个列表中的点的距离,然后比较它们。应该能够看到一个因素是否是另一个因素。如果你知道因子,你可以放大或缩小一个,看看它们是否相等。你要做的主要事情是计算每个角度。在一对“相同的不规则多边形形状,但方向和尺寸/比例不同”中,角度顺序相同。得到相同的角度列表,您将知道一个多边形中的哪些角与另一个多边形中的哪些角对齐。也就是说,如果不在问题中显示一些代码,您可能不会得到任何答案。谢谢@fstam,但我这里的主要要求是将一个形状相对于另一个旋转,以便它们匹配并定向。基本上,我希望我必须找到它们之间的角度差,从设定的点开始,旋转一个到那个角度,使它与另一个对齐。有什么想法吗?只是大声想一想。尝试根据中心对每个集合进行排序,您可以找到中心,然后将两个集合的前两点作为多边形的一侧,并计算它们之间的角度。然后围绕中心旋转一个多边形。显示示例。我们不能盲目地回答。根据设计,Hu矩是旋转不变的。可以使用协方差矩阵,但在对称云的情况下,它会失败。瞬间的定向是一个令人不安的问题。@Yves Daoust是的,只是中心瞬间。关于对称-作者提到了
不规则
(虽然我们还没有看到示例),不规则与对称并不矛盾。但除此之外,非对称多边形可以具有对称矩。力矩定向是一个不容易解决的问题。@Yves Daoust同样怀疑使用旋转卡尺的凸面壳体的最小/最大直径。矩计算可能是迭代最近点算法的先决条件(可能有点过头了)。是的,点云的方向是一个不容易解决的问题。在坏的情况下,任何角度都可能是错误的。