![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
convertBoost , Chapter 1. Geometry , Algorithms
|
Тип |
Концепция |
Имя |
Описание |
---|---|---|---|
Геометрия1 const & | Любой тип, выполняющий концепцию геометрии | Геометрия1 | Модель указанного понятия (источник) |
Геометрия2 & | Любой тип, выполняющий концепцию геометрии | Геометрия2 | Модель указанного понятия (цели) |
Либо
#include <boost/geometry.hpp>
Либо
#include <boost/geometry/algorithms/convert.hpp>
Преобразование функций не определяется OGC.
Точка<-- [ORIG_BEGIN] ТочкаPoint [ORIG_END] --> |
сегмент | КоробкаBox [ORIG_END] --> |
Струнный |
Кольцо |
полигон |
многоточечный | MultiLinestringMultiLinestring [ORIG_END] --> |
Многополигон | |
---|---|---|---|---|---|---|---|---|---|
Точка<-- [ORIG_BEGIN] ТочкаPoint [ORIG_END] --> | |||||||||
сегмент | |||||||||
КоробкаBox [ORIG_END] --> | |||||||||
Струнный | |||||||||
Кольцо | |||||||||
полигон | |||||||||
многоточечный | |||||||||
MultiLinestringMultiLinestring [ORIG_END] --> | |||||||||
Многополигон |
![]() | Note |
---|---|
В этой матрице статуса выше: столбцы являются типами источников, а строки - типами целей. Таким образом, коробка может быть преобразована в кольцо, многоугольник или многополигон, но не наоборот. |
линейный
Как преобразовать геометрию в другую геометрию
#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)
![]() | Note |
---|---|
Преобразование моделируется как источник ->цель (где назначение моделируется как цель :=источник) |
Статья convert раздела Chapter 1. Geometry Algorithms может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Algorithms ::
реклама |