![]() |
![]() ![]() ![]() ![]() |
![]() |
areaBoost , Chapter 1. Geometry , area
|
||||||||||||||||||||||||||||||||||||||||||||||||||
|
Тип |
Концепция |
Имя |
Описание |
|---|---|---|---|
Геометрия конст & | Любой тип, выполняющий концепцию геометрии | Геометрия | Модель указанного понятия |
Расчетная площадь
Либо
#include <boost/geometry.hpp>
Либо
#include <boost/geometry/algorithms/area.hpp>
Функциональная область реализует функцию Area отOGC Simple Feature Specification.
|
Дело |
поведение |
|---|---|
точечный (например, точка) | Возвращение 0 |
линейный (например, линейный) | Возвращение 0 |
ареал (например, полигон) | Возвращает территорию |
Картезиан | Возвращает область в тех же единицах, что и входные координаты . |
Сферический | Возвращает площадь на единичную сферу (или другую сферу, если таковая указана в конструкторе стратегии) |
Обратный многоугольник (координаты, не соответствующие их ориентации) | Возвращает отрицательную область |
|
Геометрия |
статус |
|---|---|
Точка |
|
Сегмент |
|
Коробка |
|
Струна |
|
Кольцо |
|
Полигон |
|
Многоточечный |
|
Мультилинестринг |
|
Многополигон |
|
Вариант |
|
линейный
Вычислите площадь полигона
#include <iostream> #include <boost/geometry.hpp> #include <boost/geometry/geometries/point_xy.hpp> #include <boost/geometry/geometries/polygon.hpp> namespace bg = boost::geometry;int main() { // Calculate the area of a cartesian polygon bg::model::polygon<bg::model::d2::point_xy<double> > poly; bg::read_wkt("POLYGON((0 0,0 7,4 2,2 0,0 0))", poly); double area = bg::area(poly); std::cout << "Area: " << area << std::endl; // Calculate the area of a spherical equatorial polygon bg::model::polygon<bg::model::point<float, 2, bg::cs::spherical_equatorial<bg::degree> > > sph_poly; bg::read_wkt("POLYGON((0 0,0 45,45 0,0 0))", sph_poly); area = bg::area(sph_poly); std::cout << "Area: " << area << std::endl; return 0; }
Результат:
Area: 16 Area: 0.339837
Статья area раздела Chapter 1. Geometry area может быть полезна для разработчиков на c++ и boost.
реклама |