Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

svg_mapper

Boost , Chapter 1. Geometry , SVG (Scalable Vector Graphics)

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Класс помощника для создания карт SVG.

Synopsis

template<typename Point, bool SameScale, typename SvgCoordinateType>
class svg_mapper
      : noncopyable
{
  // ...
};

Template parameter(s)

Параметр

по умолчанию

Описание

Фамилия Точка

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 может использовать координаты с плавающей точкой. Следовательно, значение по умолчанию является двойным

.
Constructor(s)

Функция

Описание

Параметры

<
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 стримингом

Member Function(s)

Функция

Описание

Параметры

Возвращение

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, если текст содержит

Header

Либо

#include <boost/geometry.hpp>

Либо

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

Example

Использование 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

See also

PrevUpHomeNext

Статья svg_mapper раздела Chapter 1. Geometry SVG (Scalable Vector Graphics) может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: SVG (Scalable Vector Graphics) ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 00:42:38/0.0063719749450684/1