Я пытаюсь найти самые внешние вершины выпуклого многоугольника (относительно точки Pвне многоугольника). Пока меня интересуют только прямоугольники (однако мне нужен алгоритм, работающий с любым выпуклым многоугольником).
Мой план состоит в том, чтобы построить линию из внешних точка Pв центральную точку C.От этой линии отсчетая построю линии от точки Pдо точек 1 , 2, 3и 4, так как точки 2и 4будут иметь наибольшее ( наиболее положительные) и наименьшие (самые отрицательные) углы от линии отсчета, они будут идентифицированы как крайние вершины.
Является ли это лучшим алгоритмом для работы? можно ли вычислять углы по эталонному углу (предпочтительно на Java)?
Я нарисовал линии (линия ссылкикрасного цвета). Как видите, линия от Pдо 2создает наибольший угол с одной стороны от линии отсчета, а линия от P - 4создает наибольший угол другой стороны. Следовательно, это самые внешние вершины.