【问题标题】:boost geometry polygon insert point at index在索引处提升几何多边形插入点
【发布时间】:2017-01-28 15:01:38
【问题描述】:

如何在多边形索引处添加点? 在正确的索引处插入点(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;
}

【问题讨论】:

    标签: c++ boost polygon boost-geometry


    【解决方案1】:

    据我了解,poly.outer 只是一个 std::vector,因此您应该能够使用 insert 方法将值放在所需的索引处:

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

    live demo

    【讨论】:

    • 这个要复杂的多,需要找到正确的点来放,这不是小事。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-15
    • 1970-01-01
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多