Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
Татьяна Стексов
0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 15
#1

Триангуляция - C++

24.11.2012, 21:58. Просмотров 1678. Ответов 1
Метки нет (Все метки)

Задан многоугольник координатами своих вершин вдоль обхода его контура. Требуется указать множество непересекающихся во внутренних точках диагоналей, разбивающих многоугольник на треугольники.

Вход: файл input.txt, , в первой строке которого записано число N – количество вершин многоугольника, потом в N строках пары целых чисел – координат вершин многоугольника в порядке обхода контура.

Ограничения: 4 ≤ N ≤ 200; каждая координата от -10000 до 10000.

Выход: файл output.txt, в первой строке которого должно быть число k, указывающее необходимое число диагоналей. В последующих k строках должно быть по два натуральных числа – номер начальной и конечной вершины соответствующей диагонали.

Дополнительные ограничения: диагонали должны лежать строго внутри многоугольника (все точки диагонали, за исключением концов, являются внутренними точками многоугольника).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2012, 21:58     Триангуляция
Посмотрите здесь:

C# Триангуляция
OpenGL Триангуляция 3D
Триангуляция многоугольника C++
OpenGL Триангуляция в Delphi
Триангуляция C++
Триангуляция области JavaScript
Триангуляция Делоне C#
Триангуляция Делоне Matlab
Триангуляция Делоне
C++ Триангуляция плоского прямоугольника с вырезом
Delphi Триангуляция полигонов

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dmitrydm
0 / 0 / 0
Регистрация: 30.03.2015
Сообщений: 8
19.04.2015, 21:35     Триангуляция #2
прошло уже 3 года, но теперь и мне хотелось бы получить решение на эту задачу
Выходной файл:
N − 3 строки, в каждой по паре чисел – номеров вершин, соединенных диагоналями.
Пример:
Входной файл:
5
1 1
2 5
5 5
5 1
2 2
Выходной файл:
2 5
3 5
Идея алгоритма:
Расщепить многоугольник Р вдоль некоторой диагонали, а затем воспользоваться рекурсивной
триангуляцией получившихся двух многоугольников. В конце возникает ситуация, когда
подлежащий триангуляции многоугольник является треугольником.
Алгоритм основан на Теореме о триангуляции многоугольника:
Любой N-угольник может быть разбит на N − 2 треугольника проведением N − 3 диагоналей.
Yandex
Объявления
19.04.2015, 21:35     Триангуляция
Ответ Создать тему
Опции темы

Текущее время: 15:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru