2016-12-06 7 views
0

Как создать многоугольник геометрии бурения с использованием std :: vector? НапримерГеометрия усиления и STL

typedef double coordinate_type; 
    typedef boost::geometry::model::d2::point_xy<coordinate_type> point; 
    typedef boost::geometry::model::polygon<point> polygon; 

    boost::geometry::model::linestring<point> test_data; 
    boost::geometry::read_wkt("LINESTRING(1 2, 3 4)", test_data); 

Выше работает хорошо. Предположим, что у меня есть полигон точек в двух векторов следующим образом:

std::vector<double> x; 
    std::vector<double> y; 
    x.push_back(1); 
    x.push_back(3); 
    y.push_back(2); 
    y.push_back(4); 

Как создать данные

boost::geometry::read_wkt("LINESTRING(1 2, 3 4)", test_data); 

Точно так же, если у меня есть точки пересекаются, например:

std::deque<polygon> output; 
    boost::geometry::intersection(test1, test2, output); 
    BOOST_FOREACH(polygon const& p, output) 
    { 
     std::cout << boost::geometry::wkt(p) << std::endl; 
    } 

Как я могу получить данные из 'p' в векторы x, y?

Буду признателен за помощь и руководство. Благодарю.

ответ

0

Что-то вроде этого следует сделать это:

typedef double coordinate_type; 
typedef boost::geometry::model::d2::point_xy<coordinate_type> point; 
typedef boost::geometry::model::polygon<point> polygon; 

point p1(1,3); 
point p2(2,4); 

polygon my_polygon = { p1, p2 }; 

std::cout << boost::geometry::wkt(p) << std::endl; 

Вы можете сделать то же самое, только строить свои точки из ваших векторов.

Смежные вопросы