如何从svg读取boost::geometry::model::polygon

How to read boost::geometry::model::polygon from svg

本文关键字:geometry model polygon boost 读取 svg      更新时间:2023-10-16

我可以像这样为svg编写boost::geometry::model::多边形:

#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;
}

然而,我似乎找不到逆运算。也就是说,我有一个。svg,现在我如何将其读取为boost::geometry::model::多边形?

正如@sehe所指出的,没有可用的SVG阅读器。