【问题标题】:Is there gap between polygons多边形之间是否有间隙
【发布时间】:2015-09-25 15:18:51
【问题描述】:

许多由顶点坐标描述的多边形应该可以组合在一起。

我怎样才能检查它们是否真的结合在一起,没有间隙?

【问题讨论】:

  • “没有间隙”是指结果必须是凸的,还是结果不能有孔?
  • 可能您还想知道多边形是否重叠或扭曲。
  • 请向我们展示您到目前为止所做的事情(或阅读此stackoverflow.com/help/on-topic 并在另一个站点中提出此问题)
  • 我正在考虑将顶点匹配在一起。消除所有重复(或三次等)的顶点,如果没有间隙,剩下的应该是外​​部边界。很快我发现这个算法并没有考虑到一些情况,比如 T 形线的交叉点......

标签: polygon area polygons


【解决方案1】:

如果所有多边形组合在一起,就会形成一个紧密的拼图。想想 2x2 阵型中的 4 个方格。如果你有顶点,你也有边。如果你想一想,所有的边都会被复制,删除所有这些复制品会留下一个多边形(一系列顶点循环回自身。

现在您在处理部分边缘匹配时必须小心。所以我要做的是将所有边缘放入一个桶中,然后一次拉出一个边缘并移除任何覆盖层(可能是部分覆盖层)。然后看看你还剩下什么。

即使多边形不是凸面,这也应该有效。我会假设它们不会自相交或仅对 CYA 而言是其他类型的。

【讨论】:

    【解决方案2】:

    首先检查所有多边形是否重叠。

    根据 ergonaut 的建议,我认为在消除了那些成对的边之后(在完全匹配之后,请参阅备注),剩下的可以连接在一起(通过检查末端的坐标)以形成一个或多个多边形。 1)如果只剩下一个多边形,它必须是由多边形组成的组合区域的外部边界,并且没有间隙; 2)如果剩下一个以上的多边形,最大的一个(A)可以假设为多边形的外部边界,那么如果它们的面积相加,则没有间隙。 3)如果多边形是离散的,它们的总面积应该大于A,并且有间隙 4)如果多边形加起来小于A,那么也有差距;

    如果我的想法有漏洞并提出健康批评,请任何人发表评论,非常感谢。

    备注:做完全匹配减少了计算,并为计算多边形的面积提供相同的服务

    【讨论】:

      【解决方案3】:

      我会尝试在像 Mathematica 这样的程序中绘制它们

      【讨论】:

      • 但是您必须目视确认,并且可能会遗漏微小的间隙。你仍然需要一个算法。我不会依靠视觉确认来保证国际空间站上的气闸或油轮上的水封。
      • 您可以在绘制公式后设计一个公式。仅根据坐标创建公式是很困难的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-18
      • 2021-05-28
      • 2018-06-18
      • 2015-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多