Giriş
Şu satırı dahil ederiz.
Constructor
Nokta tipini belirlemek için şöyle yaparız.
add metodu
Şöyle yaparız.
Şöyle yaparız.
Şu satırı dahil ederiz.
#include <boost/geometry.hpp>
Polygon veya Multi Polygon nesnelerini svg olarak yazar.Constructor
Nokta tipini belirlemek için şöyle yaparız.
using PointType = boost::geometry::model::d2::point_xy<double>;
Şöyle yaparız.
std::string filename = ...;
std::ofstream svg(filename);
boost::geometry::svg_mapper<PointType> mapper(svg, 400, 400);
svg_mapper yok olurken ofstream'e yazaradd metodu
Şöyle yaparız.
std::vector<TPolygon> polygons = ...;
mapper.add (polygons [1]);
Şöyle yaparız.namespace bg = boost::geometry;
typedef bg::model::d2::point_xy<float> BoostPoint;
typedef bg::model::polygon<BoostPoint> BoostPolygon;
typedef bg::model::multi_polygon<BoostPolygon> BoostMultipolygon;
BoostPolygon input = ...;
BoostMultipolygon output = ...;
std::ofstream svg("output.svg");
boost::geometry::svg_mapper<BoostPoint> mapper(svg, 400, 400);
mapper.add(output);
mapper.add(input);
map metoduŞöyle yaparız.
mapper.map(polygons, "fill:rgb(255,128,0);stroke:rgb(0,0,100);stroke-width:1");
Şöyle yaparız.mapper.map(polygon,"fill-opacity:0.5;fill:rgb(153,204,0);stroke:rgb(153,204,0);
stroke-width:0");
Farklı dış çizgiler ve doldurma renkleri ile şöyle yaparız.mapper.map(p1, "fill-opacity:0.5;fill:rgb(153,204,0);stroke:rgb(153,204,0);
stroke-width:2");
mapper.map(p2, "fill-opacity:0.5;fill:rgb(204,153,0);stroke:rgb(202,153,0);
stroke-width:2");
Şöyle yaparız.template <typename TPolygon>
void WritePolygonsToSVG(const std::vector<TPolygon>& polygons,
const std::string& filename)
{
std::ofstream svg(filename);
boost::geometry::svg_mapper<PointType> mapper(svg, 400, 400);
for(size_t polygonID = 0; polygonID < polygons.size(); ++polygonID) {
mapper.add(polygons[polygonID]);
int redValue = 50 * polygonID; //This breaks with more than 5 polygons
mapper.map(polygons[polygonID],
"fill:rgb(" + std::to_string(redValue) +
",128,0);stroke:rgb(0,0,100);stroke-width:1");
}
}
Hiç yorum yok:
Yorum Gönder