2013-12-05 2 views
1

Я пытаюсь реализовать алгоритм обрезки уха в программе, но у меня возникают проблемы. Хотя я могу заставить его работать во многих ситуациях, я не нашел хорошего способа проверить рефлекторные углы.Получить угол для обрезания уха

Я искал пути - каждый метод, который я пробовал на сегодняшний день, кажется, имеет угол, за который он не будет работать. Когда я пытаюсь найти больше информации, большинство уроков/работы большинства людей просто скажут мне «найти рефлекторный угол и тест для уха», а затем описать, как тестировать ухо, но не как получить рефлекторный угол.

Может ли кто-нибудь сказать мне, как получить правильный угол внутри треугольника для вогнутого многоугольника или указать мне в правильном направлении? Может быть, проблема со мной. Благодарю.

+0

Это достаточно просто, чтобы получить угол с каждой стороны с помощью atan2. Все, что вам нужно сделать, чтобы найти рефлекторные углы, - это выяснить, с какой стороны стороны находится полигон внутри. – user2357112

+0

У меня это уже есть, как найти треугольник внутри полигона, учитывая, что он может быть вогнутым и иметь форму, например, C или S? – Charles

+0

Итерации над рефлекторными вершинами многоугольника и проверьте, находятся ли они в треугольнике. (Вам не нужно знать, верят ли верхушки верхушки.) – user2357112

ответ

1

Выяснилось, что моя проблема была одной из причин возникновения проблемы. Я говорил, что если точка находится за пределами полигона, она все равно может находиться в полигоне, не добавляя в голову тот факт, что я удалил последнюю вершину. Разрушил мои мозги, пытаясь в течение нескольких дней внедрить ушные обрезки, и в этот момент это было неправильно. Решение было основным: «проверьте, была ли центральная точка треугольника вне полигона и отмечена как рефлекс».

Смежные вопросы