提升多边形差异返回交集

时间:2014-06-02 18:04:33

标签: c++ boost polygon boost-geometry

我试图用boost :: geometry :: difference来减去另一个多边形。

首先,我创建了2个多边形,让它们称为红色和蓝色。我知道多边形是正确创建的,因为y绘制它们。

现在,如果我像这样计算这些多边形之间的差异:

    boost::geometry::difference( blue, red,green);

绿色应该是减法的结果。

然后我用green.outer()得到绿色的点(我知道绿色实际上是一个包含物,但鉴于我知道我只会得到一个多边形,因此我想简化我的例子)并绘制它们。

这是我得到的结果:

enter image description here

这不是我想要的结果。我如何使增强返回蓝色多边形减去红色多边形?像这样:

enter image description here

编辑:我尝试计算这些多边形之间的交集,我得到了我想要的东西。多数民众赞成。我不知道我做错了什么或者让人不知道数学。

1 个答案:

答案 0 :(得分:1)

我有一个非常类似的问题。我发现我的一些差异操作正常,而其他人没有。

就我而言,这是由于评论中的顶点缠绕不正确Adam suggested。我使用boost::geometry::correct()修复了它。