我试图用boost :: geometry :: difference来减去另一个多边形。
首先,我创建了2个多边形,让它们称为红色和蓝色。我知道多边形是正确创建的,因为y绘制它们。
现在,如果我像这样计算这些多边形之间的差异:
boost::geometry::difference( blue, red,green);
绿色应该是减法的结果。
然后我用green.outer()得到绿色的点(我知道绿色实际上是一个包含物,但鉴于我知道我只会得到一个多边形,因此我想简化我的例子)并绘制它们。
这是我得到的结果:
这不是我想要的结果。我如何使增强返回蓝色多边形减去红色多边形?像这样:
编辑:我尝试计算这些多边形之间的交集,我得到了我想要的东西。多数民众赞成。我不知道我做错了什么或者让人不知道数学。
答案 0 :(得分:1)
我有一个非常类似的问题。我发现我的一些差异操作正常,而其他人没有。
就我而言,这是由于评论中的顶点缠绕不正确Adam suggested。我使用boost::geometry::correct()修复了它。