2016-12-06 44 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; 

你可以從你的載體只是構建你的觀點做同樣的。