Нахождение точки, которая приводит к наибольшему правому повороту - PullRequest
0 голосов
/ 26 апреля 2020

У меня маленькая проблема с геометрией c, которую нужно решить.

Изображение проблемы

У меня есть линия от точки L до точки M, и у меня есть три точки A, B и C. Я ищу углы x1, x2 и x3.Угол x2 - это угол между линией LM и MB, а x3 - это угол между линией LM и M C. Я хочу сравнить эти углы, чтобы найти наибольшее или, другими словами, поиск точки с наибольшим правым поворотом от линии L, M. В этом случае точка C имеет наибольший угол, например, 270 °. Мне нужно вычислить угол между линией L, M и каждой парой M, AM, B и M, C.

Другой пример

В этом случае Точка E должна быть выбрана, потому что именно эта точка приводит к наибольшему правому повороту.

Я попробовал какой-то очень грязный код, в котором я сначала проверяю, в каком квадранте находятся точки A, B и C, а затем вычисляет угол в прямоугольном треугольнике и после этого прибавляет 90 ° для каждого удаленного квадранта. от оригинала. Это действительно не работает, и код действительно грязный. Я также попробовал перекрестный продукт, который используется в марше Джарвиса, но это не работает для меня.

Возможно, существует более простое решение для расчета этих углов или для нахождения точки с наибольшим правым углом поворота с другим подходом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...