简体   繁体   English

在索引处提升几何多边形插入点

[英]boost geometry polygon insert point at index

How can i add point at index of polygon ? 如何在多边形索引处添加点? Insert point(2.5, 7.5) at correct index. 以正确的索引插入点(2.5,7.5)。

output : 输出:

(((0, 0), (0, 5), (5, 5), (5, 0), (0, 0), (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))) (((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;
}

From what I understand poly.outer is just a std::vector, so you should be able to use the insert method to place the value at the desired index: 根据我的理解,poly.outer只是一个std :: vector,所以你应该能够使用insert方法将值放在所需的索引处:

poly.outer().insert( poly.outer().begin()+2, point(2.5, 7.5) );

live demo 现场演示

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM