问题标签 [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 回答
1474 浏览

c++ - boost::geometry::union 没有结果

我正在尝试使用 boost::geometry::union_ 合并一些多边形,但某些条目的输出向量为空。

这是一个例子:

当我画出我得到的两个多边形时:在此处输入图像描述

但上面代码的结果是:

这是此函数中的错误还是我的代码中有错误?

0 投票
1 回答
3858 浏览

c++ - 使用 boost 的多边形联合

我正在使用 boost::geometry::union_ 来合并随机多边形的向量,这里是我写的:

我用两个不同的多边形集测试了这个函数 union_polys:

测试 01 测试 02

它适用于第一次测试,但第二次失败,我搜索但我无法发现错误,有人可以帮忙吗?

0 投票
1 回答
370 浏览

c++ - Boost Geometry:遗留对象适配

系统:带有 gcc-4.7.2 和 boost-v1.54 的 CentOS-5

问题:我尝试调整遗留(自定义)对象以与 boost::geometry 一起使用。更具体地说,我想使用 boost 几何变换,并遵循本指南代码。我的对象与那里使用的“Q-objects”略有不同,但编译错误消息相似,所以在这里我尝试编译 Boost 提供的代码。

应用转换时出现错误。

编译错误消息

0 投票
2 回答
6988 浏览

c++ - boost::geometry: 使用圆的最近邻

我正在使用 boost::geometry 的Rtree实现来存储(大量)2D 点。现在我需要进行基于距离的最近邻查询。

但是,该手册仅将查询描述为矩形框(即“获取此矩形内的所有点”)或“KNN”查询(“从此处获取最近的“n”个点)。

我想要的实际上是“给我一组距离小于'n'的点”。

我注意到您可以定义一元谓词,但 is... 一元(因此,不适合两点的条件)。

手册记录了一些model::ring我起初认为可能适合圆形的类,但它实际上更像是一种分段线(多边形)。这个假设正确吗?

有没有另一种方法来处理这样的查询?还是根本不可能?

0 投票
1 回答
622 浏览

boost-geometry - boost::geometry::rtree::contains 返回多个相同的结果

我正在尝试评估几个 RTree 实现并遇到了一个问题boost::geometry::rtree::contains(提升版本 1.55)。我正在做的是尝试获取包含一个点的所有框的列表。它返回正确的框,但多次返回相同的框。我不确定这是为什么,libspatialindex不这样做。

这是我的代码:

我已验证所检查的点是正确的。我也不想为了使用std::set而不是std::vector.

以下是一些示例结果:

将这些与 libspatialindex 的结果进行比较:

我已经搜索了文档和源代码,但我找不到任何明显的错误。

0 投票
1 回答
224 浏览

c++ - 我可以在 boost::geometry 的多边形内存储附加信息吗?

我是 boost::geometry 和 C++ 的新手,在玩弄它时,我想到了以下问题:
是否可以直接在多边形内存储附加信息,例如包含颜色或 int 的 std::string一些身份证号码?

还是我必须用类似的东西包装它:

谢谢!
弗兰兹

0 投票
1 回答
203 浏览

c++ - 环段重叠

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

我的第一个方法是使用:

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

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

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

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

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

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

在此处输入图像描述

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

0 投票
2 回答
1339 浏览

c++ - 在 Boost.Geometry 中定义一个维度点

我正在努力定义和填充 d 维度中的一个点。确切地说,我利用让 Boost.Geometry 处理用户的任何维度是不可能的(这是我从文档和他们的邮件列表中看到的)。所以,我试图定义一个 100D 或 10000D 尺寸点。

这是代码,我的尝试和他们列表中的帮助在这里开发:

错误是编译器看不到“point”的typedef。另一方面,我不能将 typedef 的维度设为运行时变量(Boost 不会让我(!))。我能做些什么?除了使用另一个库,因为这是我在高维几何中见过的最糟糕的界面。:/

编译为:c++ -I ../ bla.cpp -std=c++0x -ftemplate-depth-170001 -o bla

0 投票
3 回答
2857 浏览

c++ - 创建许多 boost::polygons 联合的最快方法是什么?

我必须联合许多 boost::polgons,但我的方法似乎不是很高效(> 15 分钟),尤其是在多边形数量较多的情况下(> 2000)。

我将要合并的所有多边形推入多面体,然后加入多面体,请参阅我的代码:

结果可能不会包含很多多边形,因为要合并的大多数多边形都会相交。

有什么方法可以提高性能,比如按特定顺序或完全不同的方法对多边形进行排序?

0 投票
1 回答
829 浏览

c++ - 在 boost::geometry 中取凸包的交点

在多次尝试使用由于舍入问题导致异常异常的浮点数之后,我认为使用整数算术作为解决方法可以解决问题。但是,现在我遇到了完全相同的问题。

我正在尝试计算各种点集的凸包的交集:

这失败了boost::geometry::overlay_invalid_input_exception

凸包看起来像这样hull0hull1

船体 0 和船体 1

有什么我做错了吗?我真的不想自己实现计算凸包和交叉点,这似乎是很多不必要的容易出错的工作。