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

convert

Boost , Chapter 1. Geometry , Algorithms

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

Преобразует одну геометрию в другую.

Description

Алгоритм преобразования преобразует одну геометрию, например BOX, в другую геометрию, например кольцо. Это работает только тогда, когда это возможно и применимо. Если точечный порядок различен или замыкание различно между двумя типами геометрии, оно будет правильно преобразовано путем явного обращения точек или закрытия или открытия многоугольных колец.

Synopsis

template<typename Geometry1, typename Geometry2>
void convert(Geometry1 const & geometry1, Geometry2 & geometry2)

Parameters

Тип

Концепция

Имя

Описание

Геометрия1 const &

Любой тип, выполняющий концепцию геометрии

Геометрия1

Модель указанного понятия (источник)

Геометрия2 &

Любой тип, выполняющий концепцию геометрии

Геометрия2

Модель указанного понятия (цели)

Header

Либо

#include <boost/geometry.hpp>

Либо

#include <boost/geometry/algorithms/convert.hpp>

Conformance

Преобразование функций не определяется OGC.

Supported geometries

Точка<-- [ORIG_BEGIN] ТочкаPoint

[ORIG_END] -->

сегмент

КоробкаBox

[ORIG_END] -->

Струнный

Кольцо

полигон

многоточечный

MultiLinestringMultiLinestring

[ORIG_END] -->

Многополигон

Точка<-- [ORIG_BEGIN] ТочкаPoint

[ORIG_END] -->

ok

nyi

nyi

nyi

nyi

nyi

nyi

nyi

nyi

сегмент

nyi

ok

nyi

nyi

nyi

nyi

nyi

nyi

nyi

КоробкаBox

[ORIG_END] -->

ok

nyi

ok

nyi

nyi

nyi

nyi

nyi

nyi

Струнный

nyi

ok

nyi

ok

nyi

nyi

nyi

nyi

nyi

Кольцо

nyi

nyi

ok

nyi

ok

ok

nyi

nyi

nyi

полигон

nyi

nyi

ok

nyi

ok

ok

nyi

nyi

nyi

многоточечный

ok

nyi

nyi

nyi

nyi

nyi

ok

nyi

nyi

MultiLinestringMultiLinestring

[ORIG_END] -->

nyi

ok

nyi

ok

nyi

nyi

nyi

ok

nyi

Многополигон

nyi

nyi

ok

nyi

ok

ok

nyi

nyi

ok

[Note]Note

В этой матрице статуса выше: столбцы являются типами источников, а строки - типами целей. Таким образом, коробка может быть преобразована в кольцо, многоугольник или многополигон, но не наоборот.

Complexity

линейный

Example

Как преобразовать геометрию в другую геометрию

#include <iostream>
#include <boost/geometry.hpp>
#include <boost/geometry/geometries/box.hpp>
#include <boost/geometry/geometries/point_xy.hpp>
#include <boost/geometry/geometries/polygon.hpp>
#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
int main()
{
    typedef boost::geometry::model::d2::point_xy<double> point;
    typedef boost::geometry::model::box<point> box;
    typedef boost::geometry::model::polygon<point> polygon;
    point p1(1, 1);
    box bx = boost::geometry::make<box>(1, 1, 2, 2);
    // Assign a box to a polygon (conversion box->poly)
    polygon poly;
    boost::geometry::convert(bx, poly);
    // Convert a point to another point type (conversion of point-type)
    boost::tuple<double, double> p2;
    boost::geometry::convert(p1, p2); // source -> target
    using boost::geometry::dsv;
    std::cout
        << "box: " << dsv(bx) << std::endl
        << "polygon: " << dsv(poly) << std::endl
        << "point: " << dsv(p1) << std::endl
        << "point tuples: " << dsv(p2) << std::endl
        ;
    return 0;
}

Результат:

box: ((1, 1), (2, 2))
polygon: (((1, 1), (1, 2), (2, 2), (2, 1), (1, 1)))
point: (1, 1)
point tuples: (1, 1)
See also
[Note]Note

Преобразование моделируется как источник ->цель (где назначение моделируется как цель :=источник)


PrevUpHomeNext

Статья convert раздела Chapter 1. Geometry Algorithms может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Algorithms ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-07-04 17:41:51/0.0045409202575684/0