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

within

Boost , Chapter 1. Geometry , within

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

Свободная функция проверяет, находится ли первая геометрия полностью внутри второй геометрии.

Synopsis

template<typename Geometry1, typename Geometry2>
bool within(Geometry1 const & geometry1, Geometry2 const & geometry2)

Parameters

Тип

Концепция

Имя

Описание

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

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

Геометрия1

Модель указанного понятия, которая может находиться в пределах второй геометрии

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

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

Геометрия2

Модель указанного понятия, которая может содержать первую геометрию

Returns

истинно, если геометрия1 полностью содержится в геометрии2, то ложно

Header

Либо

#include <boost/geometry.hpp>

Либо

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

Conformance

Функция внутри реализует функцию внутри изOGC Simple Feature Specification.

[Note]Note

ОГК определяет внутри как полностью внутри, а не на границе. См. примечания для внутри / на границе

Supported geometries

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

[ORIG_END] -->

Сегмент[ORIG_BEGIN]Сегмент

[ORIG_END] -->

Коробка

Струнный

КольцоКольцо

[ORIG_END] -->

[[ORIG_BEGIN]] ПолигонПолигон

[ORIG_END] -->

MultiPointMultiPoint

[ORIG_END] -->

MultiLinestringMultiLinestring

[ORIG_END] -->

МультиполигонMultiPolygon

[ORIG_END] -->

Вариант

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

[ORIG_END] -->

ok

nyi

nyi

nyi

nyi

nyi

nyi

nyi

nyi

nyi

Сегмент[ORIG_BEGIN]Сегмент

[ORIG_END] -->

ok

nyi

nyi

nyi

nyi

nyi

nyi

nyi

nyi

nyi

Коробка

ok

nyi

ok

nyi

nyi

nyi

nyi

nyi

nyi

nyi

Струнный

ok

nyi

nyi

ok

nyi

nyi

nyi

ok

nyi

nyi

КольцоКольцо

[ORIG_END] -->

ok

nyi

nyi

ok

ok

ok

nyi

ok

ok

ok

[[ORIG_BEGIN]] ПолигонПолигон

[ORIG_END] -->

ok

nyi

nyi

ok

ok

ok

nyi

ok

ok

ok

MultiPointMultiPoint

[ORIG_END] -->

ok

nyi

nyi

nyi

nyi

nyi

nyi

nyi

nyi

nyi

MultiLinestringMultiLinestring

[ORIG_END] -->

ok

nyi

nyi

ok

nyi

nyi

nyi

ok

nyi

nyi

МультиполигонMultiPolygon

[ORIG_END] -->

ok

nyi

nyi

ok

ok

ok

nyi

ok

ok

ok

Вариант

ok

nyi

nyi

nyi

nyi

nyi

nyi

nyi

nyi

nyi

[Note]Note

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

Notes

Если точка расположена точно на границе геометрии, то результат зависит от стратегии. Стратегия по умолчанию (Виндинг (координатная система агностика)) в этом случае возвращается ложной.

Если многоугольник имеет обратную ориентацию (например, против часовой стрелки для многоугольника по часовой стрелке), результат также зависит от стратегии. Стратегия по умолчанию возвращается по-прежнему верной, если точка полностью находится в пределах обратного многоугольника. Существует определенная стратегия, которая в данном случае является ложной.

Complexity

линейный

See also
Example

Показывает, как определить, находится ли точка внутри полигона или нет.

#include <iostream>
#include <list>
#include <boost/geometry.hpp>
#include <boost/geometry/geometries/point_xy.hpp>
#include <boost/geometry/geometries/polygon.hpp>
int main()
{
    typedef boost::geometry::model::d2::point_xy<double> point_type;
    typedef boost::geometry::model::polygon<point_type> polygon_type;
    polygon_type poly;
    boost::geometry::read_wkt(
        "POLYGON((2 1.3,2.4 1.7,2.8 1.8,3.4 1.2,3.7 1.6,3.4 2,4.1 3,5.3 2.6,5.4 1.2,4.9 0.8,2.9 0.7,2 1.3)"
            "(4.0 2.0, 4.2 1.4, 4.8 1.9, 4.4 2.2, 4.0 2.0))", poly);
    point_type p(4, 1);
    std::cout << "within: " << (boost::geometry::within(p, poly) ? "yes" : "no") << std::endl;
    return 0;
}

Результат:

within: yes
within

PrevUpHomeNext

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




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



:: Главная :: within ::


реклама


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

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