增强索引处的几何多边形插入点
boost geometry polygon insert point at index
如何在多边形的索引处添加一个点?
在正确的索引处插入点(2.5, 7.5)。
输出:
(((0, 0), (0, 5), (5, 5), (5, 0), (0,0), (2.5, 7.5)))
------------------- ▼
(((0, 0), (0, 5), (2.5, 7.5), (5, 5),(5, 0), (0, 0)))
#include <iostream>
#include <boost/geometry.hpp>
#include <boost/geometry/geometries/point_xy.hpp>
#include <boost/geometry/geometries/polygon.hpp>
int main()
{
typedef boost::geometry::model::d2::point_xy<double> point;
typedef boost::geometry::model::polygon<point> polygon;
polygon poly;
boost::geometry::append ( poly, point(0, 0) );
boost::geometry::append ( poly, point(0, 5) );
boost::geometry::append ( poly, point(5, 5) );
boost::geometry::append ( poly, point(5, 0) );
boost::geometry::append ( poly, point(0, 0) );
poly.outer().push_back( point(2.5, 7.5) );
std::cout << boost::geometry::dsv(poly) << std::endl;
return 0;
}
据我了解,poly.outer 只是一个 std::vector,因此您应该能够使用 insert 方法将值放置在所需的索引处:
#include <iostream>
#include <vector>
#include <boost/geometry.hpp>
#include <boost/geometry/geometries/point_xy.hpp>
#include <boost/geometry/geometries/polygon.hpp>
int main()
{
typedef boost::geometry::model::d2::point_xy<double> point;
typedef boost::geometry::model::polygon<point> polygon;
polygon poly;
boost::geometry::append(poly, point(0, 0));
boost::geometry::append(poly, point(0, 5));
boost::geometry::append(poly, point(5, 5));
boost::geometry::append(poly, point(5, 0));
boost::geometry::append(poly, point(0, 0));
// Insert point at index 2
auto &outer_ring = poly.outer();
outer_ring.insert(outer_ring.begin() + 2, point(2.5, 7.5));
std::cout << boost::geometry::dsv(poly) << std::endl;
return 0;
}
输出为:
(((0, 0), (0, 5), (2.5, 7.5), (5, 5), (5, 0), (0, 0)))
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 预处理器:插入结构名称中的前一个行号
- 在未初始化映射的情况下,将值插入到映射的映射中
- 如何在c++中只将键插入到bimap的一侧
- 如何将结构插入到集合中并打印集合的成员
- C++json插入数组
- Visual Studio 2019:插入多个C++风格的单行注释
- nlohmann-json将一个数组插入到另一个数组中
- 有效地使用std::unordered_map来插入或增加键的值
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- 正在插入动态数组
- 插入或删除时获取usb的dos_name
- 计算缩放多边形的比例,得到给定的多边形面积
- 将QGraphicsItem的移动区域限制在多边形区域内
- 叮叮当当在修复时插入多个"覆盖"说明符
- 链表c++插入,所有情况都已检查,但没有任何工作
- 将重物插入std::map
- C++17 - 使用自定义分配器的节点提取/重新插入 - 适用于 clang++/libc++,但不适用于 libstd
- 增强索引处的几何多边形插入点