Вычисление сегментов выпуклого многоугольника с использованием CGALC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Вычисление сегментов выпуклого многоугольника с использованием CGAL

Сообщение Anonymous »

Я пытаюсь вычислить выпуклые сегменты 2D-многоугольников.
У меня есть многоугольник, который выглядит так, когда я рисую его в Matlab.
Изображение

Координаты:

Код: Выделить всё

225796.043479666,6614235.65748046
225810.567998704,6614196.64297454
225845.98597994,6614199.87498634
225890.17098232,6614182.52601038
225936.334851684,6614214.94566376
226007.697988493,6614296.73251355
226183.648576449,6614296.68302419
226183.705558557,6614063.80475619
225809.09078843,6614046.79681926
225809.057688672,6613796.65194834
225808.819271291,6613796.65197888
225808.820351664,6614046.78596429
225683.63987842,6614042.38155367
225683.649761896,6614296.67000115
225796.562029788,6614296.74302919
Вот программа CGAL, которую я пытаюсь использовать для выполнения выпуклой сегментации:

Код: Выделить всё

#include 
#include 
#include 
#include 
#include 
#include 
#include 
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
typedef CGAL::Partition_traits_2 Partition_traits_2;
typedef Partition_traits_2::Point_2                         Point_2;
typedef Partition_traits_2::Polygon_2                       Polygon_2;
typedef std::list
                                Polygon_list;

int main( )
{
std::vector points =
{
K::Point_2(225796.043479666,6614235.65748046),
K::Point_2(225810.567998704,6614196.64297454),
K::Point_2(225845.98597994,6614199.87498634),
K::Point_2(225890.17098232,6614182.52601038),
K::Point_2(225936.334851684,6614214.94566376),
K::Point_2(226007.697988493,6614296.73251355),
K::Point_2(226183.648576449,6614296.68302419),
K::Point_2(226183.705558557,6614063.80475619),
K::Point_2(225809.09078843,6614046.79681926),
K::Point_2(225809.057688672,6613796.65194834),
K::Point_2(225808.819271291,6613796.65197888),
K::Point_2(225808.820351664,6614046.78596429),
K::Point_2(225683.63987842,6614042.38155367),
K::Point_2(225683.649761896,6614296.67000115),
K::Point_2(225796.562029788,6614296.74302919)
};
Partition_traits_2 traits(CGAL::make_property_map(points));
Polygon_2 polygon;
for (int i = 0; i < points.size(); i++)
{
polygon.push_back(i);
}
Polygon_list partition_polys;

CGAL::optimal_convex_partition_2
(
polygon.vertices_begin(),
polygon.vertices_end(),
std::back_inserter(partition_polys),
traits
);
for (const Polygon_2& poly : partition_polys)
{
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/78650673/computing-convex-polygon-segments-using-cgal[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»