问题标签 [boost-polygon]

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 回答
4744 浏览

c++ - 如何在Boost中对多边形进行三角测量?

使用 Boost 对多边形进行三角剖分的最佳方法是什么?

我使用Boost.polygon

我目前的算法:

  1. 从我的多边形顶点计算一个 voronoï 图。

  2. 为每个单元格边缘创建一个有向多边形边缘(这将为每个单元格边缘创建两个有向多边形边缘)

  3. 迭代所有创建的边以创建三角形(不是微不足道的)

有更好的解决方案吗?

编辑:我刚刚意识到有可能以一种特殊的方式穿过单元格以直接创建三角形(3 个相邻单元格创建一个三角形)。

0 投票
1 回答
610 浏览

c++ - 使用 boost 生成一组矩形以在不规则多边形中形成网格

我需要创建一组预定大小的矩形,这些矩形在不规则(可能不是凸面)多边形内部形成一个网格。(我意识到边缘上会有一些不适合矩形的位。那些可以丢弃。)一切都是二维的,我的点类型是双精度的。我正在使用 UTM 数据,所以我的多边形离原点很远。我必须使用 C++。我有两个问题:

这可以通过boost完成吗?我查看了 Voronoi 图表生成器,但无法在多边形内生成矩形点阵。

是否有另一个我可以使用的几何库更适合在多边形内生成一组矩形?

0 投票
1 回答
556 浏览

c++ - 用 'auto' 和 std::minmax 观察奇怪的行为

我在 SUSE Enterprise Linux 11 上使用 GCC 4.7.2 和 Boost 1.58.0。我有以下代码片段,它基本上通过一个多边形列表来计算它们的长度/宽度。将 'auto' 关键字与 std::minmax 函数一起使用时,我看到了奇怪的输出。为了比较,我还声明了第二个变量,其中明确声明了类型(即,dim 与 dim1)。

对于此循环的第一次迭代,预期的输出是正确的。

但是,如果我注释掉“dim1”并重新运行相同的代码(即,只有自动变暗),我会在 std::minmax 中得到奇怪的结果。

我在这里做错了什么?

这是最小的示例(根据下面的答案进行编辑)。

0 投票
1 回答
257 浏览

c++ - Boost Polygon:euclidean_distance 的问题

我有以下代码应该计算两个矩形之间的欧几里得距离。我使用 GCC 4.7.3 和 Boost v1.58.0 编译

上面的代码产生了以下输出:

正确答案是 230185。现在,如果我查看 boost 多边形库中 euclidean_distance() 的实现,我会看到:

这看起来与std::sqrt(gtl::square_eclidean_distance(t,n))我的代码中给出正确答案的行相同(230185)。那么为什么我会得到 38022.6gtl::euclidean_distance()呢?我在这里没有看到什么?

在此处输入图像描述

0 投票
0 回答
100 浏览

c++ - Boost::Polygon - Polygon 90 Set Concept de allocate memory

我正在使用 Boost::Polygon - Polygon 90 Set Concept 来存储大量的矩形。不幸的是,我完成后无法取消分配内存。

这是一个最小的例子。我想在某个点取消分配多边形集的内存。clear() 命令不会取消分配(如文档中所述)。

任何人都知道如何在不超出范围的情况下取消分配?

0 投票
0 回答
295 浏览

c++ - 使用具有高精度整数的 Boost Polygon

我最近发现 boost 多边形只是整数:Boost Polygon 的用途是什么?

我正在通过将我的浮点值乘以一个大指数然后重新规范化库的输出来解决这个问题,但默认情况下,内部表示似乎是 32 位,并且当我的输入超过最大 int 时不起作用20亿左右。

有没有办法让库使用 64 位整数?

例如: http: //www.boost.org/doc/libs/1_62_0/libs/polygon/doc/tutorial/minkowski.cpp

用我天真的修改:

这会输出一个多边形,但仅适用于小于 max int 的矩形。输入数据很长,但我在内部假设它仍然是 32 位。我知道我必须定义一个新的 Point 结构并使用它,但不确定具体如何。

0 投票
0 回答
342 浏览

c++ - Boost::Polygon : 从 polygon_set 获取多边形列表

我正在构建输出对象复杂网格的程序。为了减少面向同一方向的相邻多边形的数量,我决定使用 Boost::Polygon。现在我遇到了麻烦 - 首先,程序不想输出正确的梯形数据,这是在文档中承诺的(或者我可能以错误的方式这样做)。其次,Boost 库在将 polygon_set_data(带孔的多边形集)表示为一组简单的多边形时也会遇到麻烦。我想得到一个可行的解决方案 - 首先我将简单的多边形(没有孔)一起添加到 boost::polygon_set 类型中,之后(假设 Boost 计算了所有操作并且我有几个大多边形)我想得到简单的 boost::多边形数据。

0 投票
1 回答
1469 浏览

c++ - C++:从带孔的多边形中获取简单多边形列表

我在 Boost::Polygon 上苦苦挣扎——显然它可以做任何事情,除了我想要的。我有一些边界描述了一组多边形及其孔(在二维空间中)。一般来说,我们甚至可以在一个洞中有一个洞(一个更大的多边形的洞中有一个较小的多边形),或者一个多边形中有很多洞。如果有必要,我可以检查哪个边界描述了一个洞,哪个描述了一个多边形。有时边界是分开的(并且不包含彼此),这意味着我们有很多多边形。我想要的是一种方法,它给了我一组简单的、不包含任何孔的多边形,它们一起形成输入的“孔”多边形。

0 投票
0 回答
313 浏览

c++ - 获取提升多边形内的所有点

我想获取多边形边界内的所有点(带有整数值索引)。有一个 API 函数可以查询该点是否在多边形内,但我想获取所有点的列表。boost库中是否有任何API功能可以做到这一点?

多边形是由顶点定义的,但是有几种众所周知的方法,例如填充或扫描线技术来获取多边形的内部点。但是,我在 boost.js 中找不到这些方法的任何实现。

0 投票
0 回答
334 浏览

c++ - 增强几何或多边形中多边形的凸划分

是否可以使用 boost::geometry 或 boost::polygon计算凸子多边形的分区?

我有一个凹(非凸)多边形,我想将其转换为凸子多边形。boost能做到吗?

我不是在寻求最佳解决方案……例如,Hertel-Mehlhorn 算法会很棒。

我已经在这里这里(以及许多博客或网站)检查了两个库的文档,答案对我来说并不明显......