标签: c++ boost boost-geometry
如何找到2D段与2D环(凸起)重叠(纯重叠,不邻接或接触)?
我的第一个方法是使用:
disjoint但它不起作用,因为触摸/邻接不被视为不相交
overlaps但是因为触摸/邻接被视为重叠而无法正常工作
我尝试了其他几种组合(例如使用within),我找不到一个简单的方法。我的意思是:使用几个boost-geometry算法而不实现计算几何算法。
我相信解决方案在战略的某个地方......
我想我可以重新定义问题:如何找到邻接环(多边形)? (注意:我可以从边缘创建一个退化环。)
这是我想要的数字。红色部分应返回 OVERLAP ,蓝色 NO OVERLAP 。
系统:Boost_1.54,CentOS-5,gcc-4.7.2
答案 0 :(得分:1)
是的,目前(1.55)触摸()未实现Segment / Ring。我们计划在1.56中发布更多变种,可能不是Segment / Ring,但你应该可以使用Linestring / Ring。您可以使用库的开发版本来测试它:
http://github.com/boostorg/geometry/tree/develop
此外,在开发分支中修复了触摸()中CCW多边形的问题。