问题标签 [boost-geometry]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
343 浏览

c++ - Boost几何intersection_inserter不工作

我正在使用 boost 几何库 C++。该代码在旧版本的 Eclipse(从 pythonxy 安装)中运行良好。现在我安装最新版本的 eclipse 和 Mingw (x86_64-w64-mingw32)。错误出现在函数 intersection_inserter() 和 boost::geometry::enrich_intersection_points() 中。

错误如下:

0 投票
1 回答
1139 浏览

c++ - 编译中的提升几何距离()错误

我只是写了一个 boost 给出的简单例子(http://www.boost.org/doc/libs/1_52_0/libs/geometry/doc/html/geometry/quickstart.html)。编译过程中出现一些错误。我使用 eclipse 和 Mingw 来编译它。有人可以告诉我有什么问题吗?

测试代码如下:

错误如下:

0 投票
1 回答
431 浏览

c++ - 最新版本的 boost 和 boost 几何库 (GGL) 之间的冲突

过去,我使用库 GGL 编写一些程序。例如,以下代码适用于 GGL 和旧版本的 gcc。现在我将 gcc 更新到 gcc4.7.1。我的程序在编译过程中出现错误。因此,我更新到最新版本的 boost 1.52.1。仍然存在与 point_2d、polygon_2d 等相关的错误。我发现在最新的 vesion boost 中缺少一些文件,如 'cartesian2d.hpp'、'c_array_cartesian.hpp'。

有人可以帮我分析以下代码并告诉我有什么问题吗?非常感谢。

错误如下:

0 投票
1 回答
2292 浏览

c++ - Boost Geometry / intersection() 似乎返回不一致的结果

我有一个适用于 Boost Geometry 的 3D 矢量作为 2D 点和环:

然后:

  1. 绘制一些非凸多边形(
  2. 绘制线段,切割非凸多边形并将其分成 2(较小的通常是三角形)
  3. 在线段上镜像较小的新 2 个多边形

结果是两个多边形,它们重叠并具有 1 个切边。

然后我检查两个多边形的交集。在 15% 的情况下,相交结果是空的,这令人惊讶(较小的多边形可以有面积 1.0f..10.f,所以它不是极端情况)

可能是什么原因?在调用 intersection() 之前,我尝试在每个多边形上执行 boost::geometry::correct(),但它没有帮助。我的想法不多了

编辑::

我已经测试过使用 Boost Geometry 类型和双存储类型创建新环是否会有所帮助:

我为 polyA、polyB(我的初始浮点 Vector3)和 ringA、ringB 执行了两个 intersection() 调用。然后,出现不一致:

“1”表示:输出双端队列的 size() == 1,因此发生交集(这是用于 ringA/ringB 交集)。“0”代表 Vector3——空结果。

编辑2

使用具有浮点存储类型的 boost 模型也会导致 ringA 和 ringB 调用返回不正确的结果。我已经确认了这一点。我曾经对双打不会改变错误的“逻辑”感到困惑,但这是因为意外删除了正确的()调用。对于 ringA/ringB 冗余环的正确()调用和双重存储类型,我无法获得空交叉点。

编辑3

以下是 intersection() 返回的 5 种情况:

  • 前两个环的空结果 (std::vector< Vector3 >),
  • 当第一次创建 std::vector<> 环的双类型副本时(使用 boost::geometry 模型),size() == 1 的正确结果。

情况1:

戒指 1

案例二:

戒指 2

案例3:

戒指 3

案例4:

戒指 4

案例5:

戒指 5

编辑4

这是一个函数,我用它在交叉线 (x0,y0)-(x1,y1) 上镜像多边形。使用此功能创建切边——镜像后,点位于同一位置。

0 投票
1 回答
920 浏览

boost-geometry - Boost.Geometry buffer() 算法:它是否适用于一般情况多边形

我在看这里: http: //www.boost.org/doc/libs/1_52_0/libs/geometry/doc/html/geometry/reference/algorithms/buffer/buffer.html 看到这个:“当前的实现只会扩大一个盒子,它不是由 OGC 定义的。下一个版本的库将包含一个更完整的实现“

看起来 Boost Geometry 无法缓冲任意多边形。但是各种论坛讨论都提到了 buffer() 算法,就像它实际上适用于一般情况一样。哪个是对的?

0 投票
0 回答
486 浏览

node.js - 使用 node-gyp 构建 Boost.Geometry 失败

我使用 Mac OSX 10.8.2。我已经通过 Homebrew 安装了 Boost 1.52.0 brew install boost,.

尝试通过 构建这个简单的 NodeJS 插件时node-gyp build,出现以下错误:

错误来源:

...这与错误相矛盾。我的设置有什么问题?

0 投票
2 回答
780 浏览

c++ - 转换 Rcpp NumericMatrix 以与 Boost Geometry 一起使用

我发现如果没有Rcpp 及其相关软件包为不同对象类型之间的转换提供的 nice<as>和命令,我会迷失方向。<wrap>

我有一个点矩阵,其中的行代表二维笛卡尔空间中的点:

然后我想使用boost geometry 中的convex_hull 算法来找到点的凸包。

但是,我不确定如何将其转换为可以理解NumericMatrix的数据类型之一。convex_hull此外,我不确定如何将 Boost Geometry 的输出转换回 Rcpp 可以交回给 R 的东西。

看起来 boost.tuple 可能是最好的选择

0 投票
2 回答
329 浏览

boost - 使用 Boost 库分割几何

有没有办法使用 Boost 库对几何图形执行拆分操作?

0 投票
1 回答
1381 浏览

c++ - 提升交叉口不起作用

我对增强交叉口有一个大问题。我想将一个三角形与一个四边形相交,但我得到了一个剪辑:

i46.tinypic.com/2nvuo01.png

有人可以帮助我吗?

我试图改变几何的方向,没有任何反应。交点与其他三角形一起使用,但不适用于此。

三角形:

盒子:

更新:

这是我的代码。我在 Ubuntu 12.10 上使用 gcc 4.7.2 和 boost 1.53.0

0 投票
3 回答
3428 浏览

c++ - 将 boost::geometry 多边形转换为 STL 对象

如何将 boost::geometry 多边形放入 STL 对象?

我确信这一定很简单,因为我在文档的任何地方都找不到示例。然而,我花了大约 4 个完整的工作日来尝试做这件小事。我是 C++ 新手(长期 R 程序员),但是这些小数据转换的事情让我发疯了。

是的,有一个问题的标题和我的很像:Getting the coordinates of points from a Boost Geometry polygon

但是代码太复杂了(而且发帖人一直在修改它很多次),以至于我无法对它做出正面或反面,我也无法想象其他 C++ 新手能够做到。

这是一个简单的示例,应该可以转换为其他一些 boost::geometry 数据类型,因此希望任何人都可以遵循它。

如何将这些坐标放入 STL 容器?我更喜欢两个 std::vector,一个用于 x,一个用于 y,但任何事情都可以。