Найдите, представляет ли List <Point>правильный или неправильный многоугольник - PullRequest
1 голос
/ 16 августа 2010

Как я могу реализовать этот метод:

private bool IsRegularPolygon(List<Point> seed)

Объект Point находится в 2 измерениях с координатами X и Y.

И при условии, что эторегулярный, как я могу найти длину стороны?

Спасибо!

1 Ответ

0 голосов
/ 16 августа 2010

Просто вспомните геометрию средней школы и подумайте, что делает многоугольник «регулярным».

Поскольку это не будет большим ответом, если это все, что я сказал, я собираюсь перейти к преследованию и указать, что это многоугольник, в котором все внутренние углы равны.

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

get the first point, and the two after it
find the angle between them, store it somewhere
get the second point, and the two after it
find the angle between them, make sure it's the same
repeat the last two steps for all the points in the list

Теперь, помня, что, если она регулярна, все стороны имеют одинаковую длину, поэтому нахождение длины стороны является простым вычислением расстояния между двумя точками.

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