拟合二维多边形

3
首先我想描述一下我的问题:我有两个2D多边形(两组2D点坐标,polygonA和polygonB)。我不知道这两个多边形是否相交或它们之间的距离是多少。此外,其中一个多边形,比如说polygonA,是固定的,例如不允许平移或旋转它。现在我想计算polygonB的位置,使得: 1. polygonA和polygonB不相交 2. polygonA和polygonB之间的平方距离之和最小 换句话说:我正在寻找一个位置,使得polygonB“完美地”位于polygonA上。 有人知道这样的算法吗?有什么想法吗? 非常感谢您的帮助! Pia

你想测试polyB是否完全位于polyA中,还是与polyA重叠,或者其他目标?我不太确定你的目的是什么。 - AJMansfield
1
你如何计算多边形之间的距离?这些多边形可以是凸多边形还是必须是凹多边形?如果你只需要它们相互接触,那么肯定有很多位置可以做到这一点,你只需要选择一个就可以了。 - Chris
哦!你在问如何调整两个多边形的位置,使它们不再重叠。此外,你可能不仅仅想要最小化距离平方和,实际上你需要加权处理,这样小的多边形与大的多边形碰撞时会被移动得比大的多边形更远。无论如何,更具描述性的标签将对那些试图帮助你解决问题的人有很大帮助。最后,关于目标系统的更多细节也将帮助我们帮助你。 - AJMansfield
1个回答

0

如果您想确定polyB是否完全位于polyA内部,您只需要确保polyB的所有边界点都位于polyA内部。根据您的需求,您应该使用偶奇规则或非零绕数规则来进行测试。如果您只想测试部分重叠,那么您只需要一个顶点位于另一个多边形内部,此时仍然可以使用偶奇或非零规则。


不,我不想测试polyB是否完全位于polyA中!我想计算polyB的平移和旋转,使得polyA和polyB不会碰撞,并且两个多边形之间的平方距离之和最小。算法也应该排除polyB完全位于polyA中的情况!我需要一个解决方案,其中polyB完全位于polyA的外部! - user1859705

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接