![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
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.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
реклама |