上面是一个多边形(灰色区域),其中我减去了4个多边形(红色,绿色,紫色和蓝色区域)。有没有办法获取创建的 sub -polygon(小灰色多边形)的顶点?
多边形可以是任何形状。此外,侧面减去多边形可以位于主多边形的一侧(这就是为什么我没有将其称为孔)。
答案 0 :(得分:1)
答案 1 :(得分:0)
算法:
我的建议就是在这种特殊情况下你对那些明亮的彩色多边形进行UNION操作。在操作之后,该解决方案由两个多边形组成:外部具有方向CW和具有CCW方向的孔多边形。你需要这个洞多边形,并知道这两个洞中的哪一个是洞,你可以计算两者的面积。具有负区域的多边形是孔多边形。
实现:
Clipper库为您提供所需的UNION操作和区域计算操作(以及许多其他操作)。
Clipper可用于例如。 C ++,C#,Delphi和Javascript。
C ++,C#,Delphi: https://sourceforge.net/projects/polyclipping/
Javascript:https://sourceforge.net/projects/jsclipper/
演示:http://jsclipper.sourceforge.net/6.2.1.0/main_demo.html
下图是Clipper Javascript演示的屏幕截图。该操作是INTERSECT。