2016-08-06 34 views
0

Ich kann schreiben eine boost :: Geometrie :: Modell :: Polygon lesen wie diese SVG:Wie boost :: Geometrie :: Modell :: Polygon aus svg

#include <iostream> 
#include <fstream> 

#include <boost/geometry.hpp> 
#include <boost/geometry/geometries/point_xy.hpp> 
#include <boost/geometry/geometries/polygon.hpp> 
#include <boost/geometry/io/svg/svg_mapper.hpp> 

typedef boost::geometry::model::d2::point_xy<double> point_type; 
typedef boost::geometry::model::polygon<point_type> polygon_type; 

int main() 
{ 
    polygon_type polygon; 

    polygon.outer().push_back(point_type{10,10}); 
    polygon.outer().push_back(point_type{11,10}); 
    polygon.outer().push_back(point_type{10,11}); 
    polygon.outer().push_back(point_type{10,10}); 

    std::ofstream svg("test.svg"); 

    boost::geometry::svg_mapper<point_type> mapper(svg, 400, 400); 
    mapper.add(polygon); 
    mapper.map(polygon, "fill:rgb(255,128,0);stroke:rgb(0,0,100);stroke-width:1"); 

    return 0; 
} 

Allerdings kann ich nicht scheinen die umgekehrte Operation zu finden. Das heißt, ich habe eine .svg, wie lese ich es jetzt in einem boost :: geometry :: model :: polygon?

+0

AFAIK gibt es keinen SVG-Leser. Sie können einen normalen XML-Parser verwenden, um ihn wahrscheinlich selbst zu implementieren. – sehe

+0

@sehe Willst du dies eine Antwort machen, damit ich es akzeptieren kann? –

Antwort

0

Wie @sehe betont, ist kein SVG-Reader verfügbar.