![]() |
![]() ![]() ![]() ![]() |
![]() |
is_validBoost , Chapter 1. Geometry , is_valid
|
||||||||||||||||||||||||||||||||||||
|
Тип |
Концепция |
Имя |
Описание |
|---|---|---|---|
Геометрия конст & | Любой тип, выполняющий концепцию геометрии | Геометрия | Модель указанного понятия |
Возвращается истинно, если геометрия действительна (в смысле ОГК); кроме того, считаются действительными следующие геометрии: многогеометрии без элементов, линейные геометрии, содержащие шипы, ареальные геометрии с дублирующими (последовательными) точками
Или
#include <boost/geometry.hpp>
Или
#include <boost/geometry/algorithms/is_valid.hpp>
Функция is_valid не определяется OGC.
|
Геометрия |
статус |
|---|---|
Точка |
|
Сегмент |
|
Коробка |
|
Струна |
|
Кольцо |
|
Полигон |
|
Многоточечный |
|
Мультилинестринг |
|
Многополигон |
|
Вариант |
|
Постоянное время для точек, сегментов, коробок и многоточечных
Линейный для линейных шнуров и многолинейных шнуров
Линеаритмический для колец
В настоящее время худший случай квадратичен для многоугольников и многополигонов.
Проверьте, действительна ли геометрия
#include <iostream> #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((0 0,0 10,10 10,10 0,0 0),(0 0,9 1,9 2,0 0),(0 0,2 9,1 9,0 0),(2 9,9 2,9 9,2 9))", poly); std::cout << "is valid? " << (boost::geometry::is_valid(poly) ? "yes" : "no") << std::endl; return 0; }
Результат:
is valid? no![]()
Статья is_valid раздела Chapter 1. Geometry is_valid может быть полезна для разработчиков на c++ и boost.
реклама |