1

如何确定 2D 段是否与 2D 环(凸面)重叠(纯重叠,不邻接或接触)?

我的第一个方法是使用:

  1. 不相交但它不起作用,因为触摸/邻接不被认为是不相交的

  2. 重叠但它不起作用,因为触摸/邻接被视为重叠

我尝试了其他几种组合(例如使用inside),但找不到简单的方法。简单我的意思是:使用一些增强几何算法而不实现计算几何算法。

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

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

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

在此处输入图像描述

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

4

1 回答 1

1

是的,目前 (1.55) touches() 没有为 Segment/Ring 实现。我们计划在 1.56 中发布更多变体,可能不是 Segment/Ring,但您应该能够使用 Linestring/Ring。您可以使用库的开发版本对其进行测试:

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

touches() 中 CCW 多边形的问题也在开发分支中得到修复。

于 2014-04-14T20:38:25.977 回答