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

clear

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

Общая функция для очистки геометрии. Все точки будут удалены из коллекции или коллекций, составляющих геометрию. В большинстве случаев это эквивалентно методу .clear() std::vector<...>. В случае полигона эта четкая функциональность автоматически называется для внешнего кольца и для внутренней коллекции колец. В случае точки, ящиков и сегментов ничего не произойдет.

Synopsis

template<typename Geometry>
void clear(Geometry & geometry)

Parameters

Тип

Концепция

Имя

Описание

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

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

Геометрия

Модель указанного понятия, которая будет очищена

Header

Или

#include <boost/geometry.hpp>

Или

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

Conformance

Ясная функция не определяется OGC.

Функция clear соответствует методу clear() std-библиотеки C++.

Supported geometries

Геометрия

статус

Точка

ok

Сегмент

ok

Коробка

ok

Струна

ok

Кольцо

ok

Полигон

ok

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

ok

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

ok

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

ok

Вариант

ok

Behavior

Дело

поведение

Точка

Ничего не происходит, геометрия неизменна

Сегмент

Ничего не происходит, геометрия неизменна

Коробка

Ничего не происходит, геометрия неизменна

Струна

Линия расчищена

Кольцо

Кольцо очищено

Полигон

Наружное кольцо очищается, а все внутренние кольца удаляются

.

Многоточечная

Многоточечная очистка

Многострунная

Многострунная очистка

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

Многополигон очищается

Complexity

постоянный

Example

Как очистить кольцо или полигон

#include <iostream>
#include <boost/geometry.hpp>
#include <boost/geometry/geometries/polygon.hpp>
#include <boost/geometry/geometries/ring.hpp>
#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
#include <boost/assign.hpp>
int main()
{
    using boost::assign::tuple_list_of;
    typedef boost::tuple<float, float> point;
    typedef boost::geometry::model::polygon<point> polygon;
    typedef boost::geometry::model::ring<point> ring;
    polygon poly;
    // Fill the polygon (using its own methods + Boost.Assign)
    poly.outer() = tuple_list_of(0, 0)(0, 9)(10, 10)(0, 0);
    poly.inners().push_back(tuple_list_of(1, 2)(4, 6)(2, 8)(1, 2));
    std::cout << boost::geometry::dsv(poly) << std::endl;
    boost::geometry::clear(poly);
    std::cout << boost::geometry::dsv(poly) << std::endl;
    // Create a ring using Boost.Assign
    ring r = tuple_list_of(0, 0)(0, 9)(8, 8)(0, 0);
    std::cout << boost::geometry::dsv(r) << std::endl;
    boost::geometry::clear(r);
    std::cout << boost::geometry::dsv(r) << std::endl;
    return 0;
}

Результат:

(((0, 0), (0, 10), (11, 11), (0, 0)), ((0, 0), (0, 10), (11, 11), (0, 0)))
(())
((0, 0), (0, 9), (8, 8), (0, 0))
()

PrevUpHomeNext

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




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 18:35:19/0.02871298789978/1