![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
svg_mapperBoost , Chapter 1. Geometry , SVG (Scalable Vector Graphics)
|
Параметр |
по умолчанию |
Описание |
---|---|---|
Фамилия Точка |
Point type, for input geometries. | |
bool SameScale | истинно |
Boolean flag indicating if horizontal and vertical scale should be the same. The default value is true |
Имя типа SvgCoordinate Тип |
double | Координационный тип точек SVG. SVG может использовать координаты с плавающей точкой. Следовательно, значение по умолчанию является двойным . |
Функция |
Описание |
Параметры |
---|---|---|
<svg_mapper(std::ostream&stream,SvgCoordinateTypewidth,SvgCoordinateTypeheight, std::stringconst&width_height="width=\"100%\" height=\"100%\"")> | Конструктор, инициализирующий карту СВГ. Открывает и инициализирует SVG. Следует называть явно. | std::ostream &:stream: Выходной поток, должен быть уже открытым SvgCoordinateType:ширина: Ширина карты SVG (в пикселях SVG) SvgCoordinateType:высота: Высота карты SVG (в пикселях SVG) std::string const &:width_height: Дополнительные сведения для увеличения ширины и/или высоты |
<~svg_mapper()> | Разрушитель, вызванный автоматически. Закрывает SVG стримингом |
Функция |
Описание |
Параметры |
Возвращение |
---|---|---|---|
template<typename Geometry> void add(Geometry const & geometry)
| Добавляет геометрию в матрицу преобразования. После этого указанная геометрия может быть полностью отображена на карту SVG. | Геометрия const &:Геометрия: Модель указанного понятия | |
template<typename Geometry> void map(Geometry const & geometry, std::string const & style, double size = -1.0)
| Картирует геометрию на карте SVG с использованием указанного стиля. | Геометрия const &:Геометрия: Модель указанного понятия std::string const &:style: Струна, содержащая дословную информацию о стиле СВГ двойная:размер: Дополнительный размер (используется для точек SVG) в пикселях SVG. Для линейных линий укажите ширину линии в информации о стиле SVG | |
<template<typenameTextPoint> voidtext(TextPointconst&point,std::stringconst&s,std::stringconst&style, doubleoffset_x=0.0,doubleoffset_y=0.0,doublelineheight=10.0)> | Добавляет текст на карту SVG. | TextPoint const &:точка: Расположение текста (в единицах карты) std::string const &:s: Сам текст std::string const &:стиль: Струна, содержащая дословную информацию о стиле SVG, текста двойной:смещения_x: Смещение в пикселях SVG, по умолчанию 0 двойной:смещения_y: Смещение в пикселях SVG, по умолчанию 0 двойной: Высота строки в пикселях SVG, если текст содержит |
Либо
#include <boost/geometry.hpp>
Либо
#include <boost/geometry/io/svg/svg_mapper.hpp>
Использование svg_mapper
#include <iostream> #include <fstream> #include <boost/geometry.hpp> #include <boost/geometry/geometries/point_xy.hpp> #include <boost/geometry/geometries/polygon.hpp> int main() { // Specify the basic type typedef boost::geometry::model::d2::point_xy<double> point_type; // Declare some geometries and set their values point_type a; boost::geometry::assign_values(a, 3, 6); boost::geometry::model::polygon<point_type> b; boost::geometry::read_wkt("POLYGON((0 0,0 7,4 2,2 0,0 0))", b); boost::geometry::model::linestring<point_type> c; c.push_back(point_type(3, 4)); c.push_back(point_type(4, 5)); // Declare a stream and an SVG mapper std::ofstream svg("my_map.svg"); boost::geometry::svg_mapper<point_type> mapper(svg, 400, 400); // Add geometries such that all these geometries fit on the map mapper.add(a); mapper.add(b); mapper.add(c); // Draw the geometries on the SVG map, using a specific SVG style mapper.map(a, "fill-opacity:0.5;fill:rgb(153,204,0);stroke:rgb(153,204,0);stroke-width:2", 5); mapper.map(b, "fill-opacity:0.3;fill:rgb(51,51,153);stroke:rgb(51,51,153);stroke-width:2"); mapper.map(c, "opacity:0.4;fill:none;stroke:rgb(212,0,0);stroke-width:5"); // Destructor of map will be called - adding </svg> // Destructor of stream will be called, closing the file return 0; }
Результат:
Статья svg_mapper раздела Chapter 1. Geometry SVG (Scalable Vector Graphics) может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: SVG (Scalable Vector Graphics) ::
реклама |