对齐两个不同多边形的边

2024-05-15 10:21:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个不同的多边形。如果第一个多边形的边与第二个多边形的边之间的距离小于指定的阈值,我希望将第一个多边形的边与第二个多边形的边对齐。 只能考虑平行边

所以我现在做的是 Image link for what i intend to do

  1. 我循环通过第一个多边形和第二个多边形边,找到第一个多边形的边和第二个多边形的边,它们彼此平行
  2. 如果它们的距离小于指定的阈值,我将按相应的距离值移动第一个多边形的边点

目前,它适用于简单多边形。但是对于复杂的多边形,当我遵循上面的方法时,它会产生一个自相交多边形

那么,有没有更好的算法将一个多边形的边与另一个多边形的边对齐


Tags: 方法算法距离阈值多边形平行行李边点
1条回答
网友
1楼 · 发布于 2024-05-15 10:21:51

正如@MBo所说,这在很大程度上取决于多边形是否是凸面(没有凹痕)。 如果你有任意的非凸多边形,那么这个问题就很难解决,需要解决 决定什么是理想的“答案”

如果P1和P2都是凸的,那么计算一致性似乎是可行的 在边之间,标识最近的两条边e1和e2。有各种分段度量;也许Hausdorff距离最远 合适

一旦识别出e1和e2,就可以重新定位P2,使e2与e1匹配

相关问题 更多 >