问题标签 [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 投票
3 回答
1399 浏览

boost - Boost::geometry : 计算多边形的质心

我一直在使用 Boost 几何,主要用于处理多边形;我正在使用质心内置方法(http://www.boost.org/doc/libs/1_55_0/libs/geometry/doc/html/geometry/reference/algorithms/centroid/centroid_2.html)来计算几何(bary)我的多边形的中心,但最近在输出我的点的坐标(组成一个特定的多边形)(并用一些 Python 脚本在侧面分析它们)之后,我意识到以前的方法给我的质心坐标不对应为多边形点的几何平均值。

我在二维并将其放入方程式中,我应该有:

对于 y 坐标也是如此。我现在怀疑这可能与 boost 几何库不仅查看多边形边缘(其外环)上的点,而且将其视为填充对象有关。

你们中有人有操作这些功能的经验吗?

顺便说一句,我使用:

计算质心。

谢谢你。

0 投票
1 回答
1391 浏览

c++ - Boost::geometry 在点和多边形上使用方法时遇到问题?

看来我在正确使用 boost 几何库时遇到了麻烦(Boost::geometry :计算多边形的质心)。我非常感谢对我上一个问题的帮助,并想问一些关于 boost::geometry::within 方法的问题,回答一个几何图形是否包含在另一个几何图形中。

我在我的代码中使用它来检查一个点是否包含在多边形中,并且我遇到了奇怪的结果,其中一个点绝对不应该在很远的多边形内,但该方法True在调用时仍然返回。

我正在考虑我在声明我的多边形时缺少的一个微妙之处,我真的很想解决这个问题。虽然来回查看我的代码,但我在调试时缺乏想法,感觉就像一个隧道视野。这就是为什么我想对这个特定的例子有所提示:

我的观点有坐标:221.703 , 256

多边形是坐标,逐点:

266.158 256 266.447 256.5 267.024 256.5 267.313 257 267.024 257.5 267.313 258

这显然不应该包含上面给出的观点。

我很抱歉问这个迂腐的东西,但我真的很感谢任何愿意把鼻子放在这个问题上的人

我的代码:

0 投票
0 回答
144 浏览

c++ - 自 gcc 更新到 4.9.0 后,BoostPolygonSet 崩溃

我的 Linux 发行版最近从 gcc 4.8.x 更新到 4.9.0。从那时起,我在使用 boost 多边形集时遇到了崩溃,即使是示例中最简单的用法:

最后一件事在 ps += 行上崩溃:

第 289 行,上面写着:

并且 *x_ 为空

我尝试了不同的解决方法,但没有任何帮助。不幸的是,ArchLinux 没有提供并行安装超过 1 个 gcc 版本的方法,所以我需要让它工作。

有任何想法吗?谢谢!

更新:

最近 archlinux 对 gcc 包 gcc 4.9.0-2 的更新解决了这个问题。要么是 gcc 中的错误,要么由于编号,更可能是 ArchLinux 包系统中的错误。不知道如何关闭一个问题(是的,我搜索了帮助 ;-) )认为它已解决。

0 投票
1 回答
170 浏览

c++ - boost DE-9-IM 结构是否可用

我想使用de9im来加快对多边形内点的调用,该多边形可能会被多次使用。我知道 de9im 具有此功能,但我似乎无法弄清楚 boost 中的类是如何工作的(geometry/strategies/intersection_result.hpp)。有谁知道这个类是否真的有效,如果可以,他们可以提供一个简单的查询包含点的多边形的示例。

编辑:我将 boost 几何库与 JTS 进行比较,它有一个准备好的几何类,此时我不是 100% 使用 DE-9IM 是允许预计算的,但我仍然想知道是否 boost里面有这个功能。

0 投票
1 回答
1033 浏览

c++ - boost::variant 几何算法断言失败

我想要一个std::vector地理区域的几何图形。其中一些区域是连续的,并由多边形表示。有些区域是不连续的,并由多面体表示。我的计划是使用 astd::vector<boost::variant<polygon,multipolygon>>来处理这种差异。

两者都polygon满足multipolygon几何概念,因此我们应该能够在其中任何一个上调用信封。那行得通,但我似乎无法调用envelope.variant<polygon,multipolygon>

如果我取消注释该行bg::envelope(county,bb);,编译将失败并出现以下错误:

我不认为这与未定义模板的隐式实例化有关:Boost Bug 或 Clang Bug?,因为我使用的是 boost 1.55.0 版。

注释行之后的 if 语句是可行的,但它似乎是一个 hack。有没有办法让它工作而不诉诸于枚举变体中的不同类型?

0 投票
1 回答
1037 浏览

c++ - 为什么 boost::geometry::intersection 不能正常工作?

我为Boost Geometry相交函数编写了下一个测试函数

我预期的输出结果为:

但我得到了:

我使用 Boost 1.54。

如果我要更改第一个多边形,则交集正确。

编辑:当我将多边形类型更改为

它开始正常工作。所以我不能一直使用以前的类型吗?

0 投票
1 回答
7227 浏览

c++ - Boost.Geometry 多边形点赋值

我正在尝试使用增强几何并且无法将点分配给多边形。假设我创建了一个静态的点向量

然后我创建一个多边形:

假设我已经定义了 a 点的值。

如何将点从 a 分配给 P?

0 投票
1 回答
1041 浏览

c++ - 提升多边形差异返回交点

我试图用 boost::geometry::difference 从另一个多边形中减去一个多边形。

首先,我创建了 2 个多边形,我们称它们为红色和蓝色。我知道多边形是正确创建的,因为 y 绘制了它们。

现在,如果我像这样计算这些多边形之间的差异:

绿色应该是减法的结果。

然后我使用 green.outer() 从绿色中获取点(我知道绿色实际上是一个容器,但鉴于我知道我只会得到一个多边形,因此我想简化我的示例)并绘制它们。

这是我得到的结果:

在此处输入图像描述

那不是我想要得到的结果。我怎样才能让 boost 返回蓝色多边形减去红色多边形?像这样:

在此处输入图像描述

编辑:我尝试计算这些多边形之间的交集,我得到了我想要的。那很奇怪。不知道是我做错了什么,还是提高了不懂数学的人。

0 投票
0 回答
894 浏览

c++ - 使用 boost::geometry 的多边形法线向量

我正在尝试 boost::geometry 并且想知道您是否知道一种在多边形和线段之间的交点处获取多边形法向量的有效方法。或者类似于它相交的线段的线段标识?如果我有包含交叉点的多边形的线段,我确实了解如何获得法线。到目前为止我有

提前非常感谢!

0 投票
1 回答
1652 浏览

c++ - 在 boost geometry c++ 库中,我添加的点的顺序是否重要?

我是boost的新手,甚至更多的是boost-geometry,所以我的问题是……boost-geometry是否重要我向多边形添加点的顺序?

例如:这是一样的吗?

非常感谢您提前。