问题标签 [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.
c++ - 使用 BOOST_GEOMETRY_REGISTER_RING
我很难理解如何将我自己的类型注册为boost::geometry::model::ring
. 我有自己的点课:
并且环存储为std::vector<Point>
. 因此,我这样注册它们:
现在我想纠正一个环的方向,事实上,以下编译:
麻烦的是,如何定义环的“正确”方向?使用时更明显boost::geometry::model::polygon
,模板参数允许我指定预期的方向。但是,以下内容无法编译:
显然,我自己的环类型无法转换为clockwise_closed_polygon
.
所以我有两个问题:
- 如何指定正确的环方向?
- 如上所述,为什么我的环类型不能与多边形一起使用?
boost-geometry - Boost几何:轨道上的点
我在一个球体(或 WGS84 椭圆体,如果使用地理扩展)上有两个点 A 和 B。这两点定义了一个大圆圈。我希望在那个大圆上找到一个点 M 的坐标,它与 A 有一定的距离(从 A 到 B)。
举个例子:一艘船在一个大圆上从 A 到 B:知道它的速度我想知道它在给定时间的位置。
有什么办法可以用 boost-geometric 做到这一点?
谢谢!
c++ - 提升几何cartesian2d.hpp
我尝试在此处的示例中使用 Boost Geometry 来执行此剪切示例
但是在最新的 Boost 库中我找不到...
boost/geometry/geometries/cartesian2d.hpp
有谁知道我在哪里可以找到这个文件?或者这个教程太旧了,文件现在已经过时了?
ios - Boost::Geometry (1.53) 与 iOS
我想在我的 iOS 项目中使用 Boost::Geometry 库。经过一天的几次尝试后,我来到了 SO。
由于 Geometry 是一个仅限 Header 的库,因此我认为不需要二进制文件,只需添加 *.hpp 文件就足够了。我对吗?
这是我所做的:
- 下载 Boost 1.53.0
boost
将根文件夹提取到libs/boost
文件夹。所以 boost root 的路径是 project/libs/boost/boost (其中包含geometry
)- 向 xcode 添加了新的 boost 文件夹
- 在构建/目标中,设置
Header Search Path
为- “$(PROJECT_NAME)/../libs/boost”
- "$(PROJECT_NAME)/libs/boost"
- “$(PROJECT_NAME)/../libs/boost/boost”
- "$(PROJECT_NAME)/libs/boost/boost"
- 得到以下编译器错误:
#include "boost/[geometry]/geometry.hpp"
抛出“未找到 boost/geometry.hpp 文件”#include "geometry.hpp"
在geometry.hpp 中抛出错误“boost/geometry/core/cs.hpp file not found”
这是我的项目结构:
我错过了什么?
c++ - Intersection_inserter 未在此范围内声明
我正在尝试计算两个椭圆之间的重叠区域。我现在正在用多边形逼近椭圆,Boost.Geometry
并且根据这个答案,我找到了一个显然使用旧版本的示例。从这个问题的第二个答案中,我可以看到这也是一个旧示例,因为 v1.53 中没有一些头文件。我已将其替换为:
并添加了以下代码:
几乎一切正常。唯一的问题是:
我收到一个错误:
此处有关此问题的 boost 文档来自 2009 年,所以我想它不再适用了……据我所知,他们的示例与我的示例相同。我在头文件intersection.hpp
中找到了定义intersection_inserter 的位置,但我无法对其进行正面或反面...
我在 win7 的 VS2012 和 Linux Mint 14 的 Qt 4.7.4 中都遇到了同样的错误。任何帮助将不胜感激!
c++ - 与 Boost::geometry 的多边形相交严重的性能下降
我有一个粒子系统,我用boost::geometry
我的椭圆粒子近似为多边形,然后使用库的交集函数来找到重叠区域。我正在计算一个“内部”和“外部”椭圆(多边形)区域来为每个粒子-粒子相互作用分配一个“势”。
我的潜在功能是:
“多边形化”功能是:
返回区域为:
只要不是针对同一个细胞(粒子),就会为每个细胞(粒子)调用该函数。以前,使用另一种方法,我的算法的一次迭代对于 100 个粒子的一次迭代大约需要 43 毫秒。现在大约需要 1 分钟(!!!),所以我想我做错了什么!
我只在 Win7 64bit 下的 MSVC2012 中对此进行了测试。我将使用 Qt 4.7.4 报告 Linux Mint。
编辑:我已经用 Qt 4.7.4 在 Linux Mint 上进行了测试,它运行得非常合理;每次迭代可能需要 90-100 毫秒,这很好。不知道win7有什么问题...
c++ - Boost几何正确
boost 1.52.0 中是否有机会纠正 3d 多边形?使用point_xy
它效果很好,但不适用于point<double, double, double>
3d。还是我应该自己测试方向?
谢谢
c++ - 使用 boost 转换度分秒弧度 boost_1_48_0
我有这个代码工作:
和这个:
但我想做度分和秒,然后再转换成弧度。
我花了一天时间试图了解升压系统是如何工作的——例子有点少,所以我想知道是否有人可以展示一个简单的例子?
在此先感谢 8+)
编辑
我想我需要更好地理解声明的工作原理。:)
编辑2:
非常感谢 - 也许我花了整个时间寻找使用 boost 的方法,但设施不存在!我认为这可能是因为我在这里找到了这个过时的代码http://www.boost.org/doc/libs/1_47_0/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_1.cpp
c++ - 使用 GPC 或 Clipper 计算多边形相交面积
我有一个 2D 粒子系统,其中粒子表示为椭圆。我需要计算椭圆 - 椭圆重叠区域,但这是一个很难分析的问题Ellipse-Ellipse Overlap。我现在将我的椭圆表示为 20 边形,以便它们被“多边形化”并且我正在使用Boost.Geometry
它来进行必要的计算。
Boost.Geometry
但是,很多时候,我从:中得到一个例外boost.geometry overlay invalid input exception
。我搜索发现这是boost.Geometry
1.53 版本的一个已知错误并且没有修复。甚至即将发布的 v1.54 的文档也没有说明解决此问题的任何内容。
我偶然发现了Clipper和GPC-General Polygon Clipper Library。他们似乎做我想做的事,但他们只输出布尔结果。有谁知道是否有办法用这些库输出计算出的交叉点的面积?我想由于交点作为某种多边形存储在内存中,我可以使用三角测量或其他方法来计算面积。任何指针将不胜感激!
Boost overlay
例外情况在 MSVC 2010 和 2012 下的 Win7 x64、MinGW 和 Qt 4.8.1 下的 Linux Mint 14 下是一致的。
geometry - 我应该使用哪个 CAD/几何库:CGAL Open CASCADE 或 Boost::Geometry 其他?
对于可定制的激光切割抽屉项目,我希望能够以编程方式在任何两个相交的垂直“2D”对象(具有宽度)之间创建连接。为此,我需要:
- 以某种标准格式加载和保存 2D 对象。
- 拉伸 2D 对象,并对 2D 对象进行标准操作(特别是对象的减法)。
- 相交 2 个对象,并能够确定相交的“线”。
您会为此建议哪个库/工具?你能估计掌握它来完成上述任务会有多困难吗?
谢谢,
罗南