环段重叠

时间:2014-04-11 07:55:16

标签: c++ boost boost-geometry

如何找到2D段与2D环(凸起)重叠(纯重叠,不邻接或接触)?

我的第一个方法是使用:

  1. disjoint但它不起作用,因为触摸/邻接不被视为不相交

  2. overlaps但是因为触摸/邻接被视为重叠而无法正常工作

  3. 我尝试了其他几种组合(例如使用within),我找不到一个简单的方法。我的意思是:使用几个boost-geometry算法而不实现计算几何算法。

    我相信解决方案在战略的某个地方......

    我想我可以重新定义问题:如何找到邻接环(多边形)? (注意:我可以从边缘创建一个退化环。)

    这是我想要的数字。红色部分应返回 OVERLAP ,蓝色 NO OVERLAP

    enter image description here

    系统:Boost_1.54,CentOS-5,gcc-4.7.2

1 个答案:

答案 0 :(得分:1)

是的,目前(1.55)触摸()未实现Segment / Ring。我们计划在1.56中发布更多变种,可能不是Segment / Ring,但你应该可以使用Linestring / Ring。您可以使用库的开发版本来测试它:

http://github.com/boostorg/geometry/tree/develop

此外,在开发分支中修复了触摸()中CCW多边形的问题。