【问题标题】:Polygon created by subtracted polygons由减去的多边形创建的多边形
【发布时间】:2013-12-11 03:19:15
【问题描述】:

上面是一个多边形(灰色区域),其中我减去了 4 个多边形(红色、绿色、紫色和蓝色区域)。有没有办法获取创建的 sub-多边形(小灰色多边形)的顶点?

多边形可以是任何形状。另外,边减去的多边形可以位于主多边形的一侧(这就是为什么我没有将其称为孔)。

【问题讨论】:

    标签: algorithm polygon clipping


    【解决方案1】:

    您想研究像Vatti 这样的裁剪算法。或者您可能想要gpc 的某些端口或绑定。

    【讨论】:

    • 谢谢。我现在正在使用 gpc。
    【解决方案2】:

    算法:

    我的建议是在这种特殊情况下,您对那些明亮的彩色多边形进行 UNION 操作。操作后,该解决方案由两个多边形组成:具有 CW 方向的外部多边形和具有 CCW 方向的孔多边形。您需要这个孔多边形并且要知道这两个中的哪一个是孔,您可以计算两者的面积。面积为负的多边形是孔多边形。


    实施:

    Clipper 库为您提供所需的 UNION 运算和面积计算运算(以及许多其他运算)。

    Clipper 可用于例如。 C++、C#、Delphi 和 Javascript。

    C++、C#、德尔福: https://sourceforge.net/projects/polyclipping/

    Javascript:https://sourceforge.net/projects/jsclipper/
    演示:http://jsclipper.sourceforge.net/6.2.1.0/main_demo.html

    下图是 Clipper Javascript Demo 的截图。操作是 INTERSECT。

    【讨论】:

      猜你喜欢
      • 2017-01-20
      • 2021-11-08
      • 2019-10-31
      • 2016-09-02
      • 1970-01-01
      • 2011-05-09
      • 1970-01-01
      • 1970-01-01
      • 2020-03-25
      相关资源
      最近更新 更多