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

append

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

Прибавляет одну или несколько точек к струнной, кольцевой, многоугольной, многогеометрической.

Synopsis

template<typename Geometry, typename RangeOrPoint>
void append(Geometry & geometry, RangeOrPoint const & range_or_point, int ring_index = -1,
            int multi_index = 0)

Parameters

Тип

Концепция

Имя

Описание

Геометрия и амп;

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

Геометрия

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

RangeOrPoint const &

Либо дальность, либо точка, полное наполнение. Концепция диапазона или повышение. Концепция геометрии

range_or_point

Точка или диапазон для добавления

int

ring_index

Индекс кольца в случае многоугольника: внешнее кольцо (-1, по умолчанию) или индекс внутреннего кольца

int

multi_index

Индекс геометрии, к которому прилагаются точки

Header

Или

#include <boost/geometry.hpp>

Или

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

Conformance

Функция приложения не определяется OGC.

Supported geometries

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

[ORIG_END] -->

диапазон

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

[ORIG_END] -->

ok

ok

Сегмент

ok

ok

Коробка

ok

ok

Струна

ok

ok

Кольцо

ok

ok

Полигон

ok

ok

MultiPoint

ok

ok

Мультилинестринг

ok

ok

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

ok

ok

Behavior

Дело

поведение

Точка, коробка, сегмент

Компиляции, но без действий

Струна

Добавляет точку или диапазон к концу строки

Кольцо

Прибавляет точку или диапазон к концу кольца (не замыкая его явно)

Полигон

Прибавляет точку или диапазон к концу многоугольника (без явного его закрытия), либо внешнее кольцо (по умолчанию), либо указывает нулевой индекс для одного из внутренних колец. В последнем случае внутренние кольца не изменяют размер автоматически, поэтому убедитесь, что нулевой индекс меньше, чем количество внутренних колец

.

Multi Linestring

Добавляет точку или диапазон к концу строки с заданным мульти-индексом. Мультилинейная строка не изменяется автоматически, поэтому убедитесь, что мультииндекс меньше, чем количество строк в мультилинейной строке.

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

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

Complexity

линейный

Example

Показывает использование Boost. Приложение геометрии для добавления точки или диапазона к многоугольнику

#include <iostream>
#include <boost/assign.hpp>
#include <boost/geometry.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()
{
    using boost::assign::tuple_list_of;
    using boost::make_tuple;
    using boost::geometry::append;
    typedef boost::geometry::model::polygon<boost::tuple<int, int> > polygon;
    polygon poly;
    // Append a range
    append(poly, tuple_list_of(0, 0)(0, 10)(11, 11)(10, 0)); 1
    // Append a point (in this case the closing point)
    append(poly, make_tuple(0, 0));
    // Create an interior ring (append does not do this automatically)
    boost::geometry::interior_rings(poly).resize(1);
    // Append a range to the interior ring
    append(poly, tuple_list_of(2, 2)(2, 5)(6, 6)(5, 2), 0); 2
    // Append a point to the first interior ring
    append(poly, make_tuple(2, 2), 0);
    std::cout << boost::geometry::dsv(poly) << std::endl;
    return 0;
}

1

tuple_list_of обеспечивает диапазон и, следовательно, может использоваться в бустере::geometry::append

2

Последний параметр ring_index 0 обозначает первое внутреннее кольцо

Результат:

(((0, 0), (0, 10), (11, 11), (10, 0), (0, 0)), ((2, 2), (2, 5), (6, 6), (5, 2), (2, 2)))
See also

PrevUpHomeNext

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




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 19:32:36/0.0072450637817383/0