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

model::ring

Boost , Chapter 1. Geometry , Models

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

Кольцо (он же линейное кольцо) является замкнутой линией, которая не должна быть самопересекающейся.

Model of

Ring Concept

Synopsis

template<typename Point, bool ClockWise, bool Closed, template< typename, typename > class Container,
         template< typename > class Allocator>
class model::ring
      : public Container< Point, Allocator< Point > >
{
  // ...
};

Template parameter(s)

Параметр

по умолчанию

Описание

Точка печатания

Тип точки

Буль ClockWise

Правда

истинно для направления по часовой стрелке, ложно для направления CounterClockWise

Буль закрыт

Правда

истинно для замкнутых многоугольников (последняя точка == первая точка), ложнооткрытые точки

template< typename, typename >class Container

std::vector

Тип контейнера, например std::vector, std::deque

шаблон< имя типа >распределитель классов

std::allocator

контейнер-аллокатор

Constructor(s)

Функция

Описание

Параметры

ring()

По умолчанию конструктор, создающий пустое кольцо.

template<typename Iterator>
ring(Iterator begin, Iterator end)

Конструктор с началом и концом, заполняющий кольцо.

Итератор:начать:

Итератор:конец:

ring(std::initializer_list< Point > l)

Конструктор, принимающий std::initializer_list, заполняющий кольцо.

std::initializer_list< Точка >:l:

Header

Или

#include <boost/geometry/geometries/geometries.hpp>

Или

#include <boost/geometry/geometries/ring.hpp>

Examples

Декларация и использование Роста. Геометрическая модель: ринг, моделирование концепции кольца

#include <iostream>
#include <boost/geometry.hpp>
#include <boost/geometry/geometries/geometries.hpp>
namespace bg = boost::geometry;
int main()
{
    typedef bg::model::point<double, 2, bg::cs::cartesian> point_t;
    typedef bg::model::ring<point_t> ring_t; 1
    ring_t ring1; 2
#if !defined(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX) \
 && !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
    ring_t ring2{{0.0, 0.0}, {0.0, 5.0}, {5.0, 5.0}, {5.0, 0.0}, {0.0, 0.0}}; 3
#endif
    bg::append(ring1, point_t(0.0, 0.0)); 4
    bg::append(ring1, point_t(0.0, 5.0));
    bg::append(ring1, point_t(5.0, 5.0));
    bg::append(ring1, point_t(5.0, 0.0));
    bg::append(ring1, point_t(0.0, 0.0));
    double a = bg::area(ring1);
    std::cout << a << std::endl;
    return 0;
}

1

Параметры по умолчанию, по часовой стрелке, замкнутое кольцо.

2

По умолчанию - построить кольцо.

3

Постройте кольцо, содержащее четыре точки плюс одну точку закрытия, используя унифицированный синтаксис инициализации C++11.

4

Добавить пункт.

Результат:

25

PrevUpHomeNext

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




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



:: Главная :: Models ::


реклама


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

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