微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

类似于在 CGAL 中计算精确偏移量,我可以计算折线的“精确缓冲区”吗?

如何解决类似于在 CGAL 中计算精确偏移量,我可以计算折线的“精确缓冲区”吗?

是否有任何已经构建并准备好使用类似于 Cgal 的 offset_2 函数的 C++ 算法,但不是计算圆和多边形的 Minkowski 和,而是计算圆和折线的 Minkowski 和(即,折线的缓冲区)?

在申请中,这就是我想做的:

  1. 输入具有 n 个顶点的折线:([x_0,y_0],[x_1,y_1],...,[x_n-1,y_n-1])
  2. 找到这条折线的确切缓冲区(输出一个可能有洞的多边形)
  3. 提取每个单独的圆锥弧以测试与我拥有的其他线的交点。
  4. 显示这条缓冲多段线

谢谢

编辑:可能的解决方

我可以在每个顶点处生成一个半径为 r 的圆,并沿每个线段生成一个宽度为 2r 的矩形,然后将它们并集吗?

如果我正确理解了 Cgal 文档,我可以得到一个精确的解决方案(即由圆锥弧组成的东西),对吗?如果是这样,我们将不胜感激。

解决方法

因此,根据我建议的解决方案,折线和半径为 r 的圆的 Minkowski 和是每个顶点处的圆或半径 r 和宽度为 {{1} 的矩形的并集} 关于每个线段。

在此之后,我使用了 Boolean Set-Operations on General Polygons 以及其中的示例,它方便地采用矩形圆的并集。其主要特点是使用了 r 概念,这使我能够以线性函数和圆弧的形式获得精确解。

这是我的代码片段(注意我输入的折线使用复坐标):

GeneralPolygon_2

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。