问题标签 [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.
c++ - boost::polygon 布尔减法导致额外的行
我有一个矩形,里面有一个圆圈。现在我进行布尔减法运算,使用 boost::polygon 和以下(伪)代码从较大的矩形中减去圆:
之后,“结果”包含一堆坐标对,其中每个坐标对都标有附加值 -1 或 1。然后我通过以下方式获取结果数据:
现在“outputData”包含形成以下结果的坐标列表:
所以这个洞被合并到一个完整的、封闭的多边形坐标数组中,我本来期望像 boost::polygon::polygon_with_holes_data 这样的东西,轮廓和洞是分开的。
所以我的问题是:我在这里做错了吗?如何将轮廓和孔分开,以便摆脱连接它们的额外线?是否有一个函数可以从返回的 boost::polygon::polygon_set_data 中获取 boost::polygon::polygon_with_holes_data 或者这里还有什么神奇之处?
谢谢 :-)
c++ - 重新排列单线以形成封闭的多边形?
假设我有一个矩形:
通常这个矩形是由一组坐标 ABCDA 组成的,这些坐标描述了一个封闭的多边形。
现在我没有这样的数组,而是一堆单独的行 BA、DA、BCD。绘制两者时,结果始终是相同的矩形,但在第二种情况下,会使用更多数据。所以我想重新排列和优化第二种情况,以便像第一种情况一样获得一个坐标数组。
我的问题:这是否可能通过 boost::geometry 或 boost::polygon 实现?如果是,如何做到这一点?如果不是:还有其他可能性吗?
谢谢!
c++ - C++中Boost.Geometry中的多边形变换:平移、旋转、绕线反射
我有三种类型的多边形查询,可以使用 boost 几何来实现:
- 将多边形平移到给定点
- 围绕参考点旋转多边形(不一定围绕原点)
- 围绕一条线反射一个多边形
由于我是 Boost Geomtry 的新手,我在理解语法方面遇到了问题。我搜索了满足我的查询的示例,但没有找到一个或发现一些对我来说难以理解的东西。您能否提供任何实现查询的示例代码而几乎没有解释?
polygon - 如何查询 Voronoi 图?
我boost
用来计算二维中一组点的 voronoi 图,非常简单;
是否有一种算法来处理生成的多边形,以便查询“给定点属于哪个站点?” 可以在恒定时间内回答吗?换句话说,给定点位于一组多边形中的哪个多边形中?
当然,可以计算并比较给定点与现有点的距离,但这将花费 O(n) 时间并且不利用 Voronoi 图中编码的信息。
c++ - 使用 boost::polygon 和 boost::multiprecision
我正在尝试使用boost::polygon
withboost::multiprecision
来计算多边形差异,但无论我如何尝试将两者结合起来,我总是会遇到编译器错误,例如
在
以及尝试回读结果时的类似位置:
我这样做对吗?我尝试了不同的东西,coordinate_traits
但最后看起来像evalAtXforYlazy这样的惰性函数中使用的类型和表达式拒绝支持这一点。
我还尝试polygon_arbitryry_formation.hpp
在需要的地方修改和添加显式强制转换,这起初很有希望,但最终导致我在这里重载了源自这里的结果问题。
我进一步尝试boost.multiprecision
用MPIR替换,但它们甚至没有显式转换运算符,而只是用于转换的成员函数,与evalAtXforYlazy和其他函数的兼容性更差。
我究竟做错了什么?
boost - boost 多边形相交 API 的工作方式与应有的方式相反
我不确定为什么下面代码示例中的增强多边形相交只是给出相反的输出,即它的给出区域是相交的对面。
我不知道我的多边形数据是否有问题,因为对我来说一切都很好(但不确定你是否能发现任何奇怪的东西)。
您可以取消注释注释代码以查看 2 个多边形的外观。输出可以在文件 my_map.svg 中看到,它只会显示 2 个多边形之间的交集的反面。不知道为什么它的行为相反。
c++ - 为什么我没有得到这些多边形的任何交集?
我学习了如何将 boost::polygon 库与自定义多边形一起使用。我举了一个使用自定义多边形的例子,并试图得到这些的交叉点。我没有任何交集,也不明白为什么。此外,您可以看到这个构造函数
没有它我无法编译我的程序。有人可以解释一下,为什么我需要它?我做错了什么?
我在交叉点的结果向量中得到 size = 0 。