вершины многоугольника - по часовой стрелке или против часовой стрелки - PullRequest
2 голосов
/ 28 февраля 2012

наткнулся на эту ссылку http://www.mathopenref.com/coordpolygonarea2.html

Он объясняет, как рассчитать площадь многоугольника, и помогает определить, введены ли вершины многоугольника по часовой стрелке или против часовой стрелки.

Если значение области + ve, оно по часовой стрелке, если -nv, то против часовой стрелки.

Мое требование - указывать только по часовой стрелке или против часовой стрелки. Будет ли это правило работать правильно (хотя есть ограничения, как указано в ссылке). У меня есть только правильные многоугольники (не сложные, без самопересечений), но вершин больше.

Меня не интересует точность значения площади, просто чтобы узнать вращение кольца.

Любая другая мысль по этому поводу.

Ответы [ 2 ]

10 голосов
/ 05 апреля 2012

Для выпуклых многоугольников:

Select two edges with a common vertex. 
Lets say, edge1 is between vertex A and B. Edge2 is between vertex B and C.
Define to vectors: vect1: A----->B
                   vect2: B----->C
Cross product vect1 and vect2. 
If the result is positive, the sequence A-->B-->C is Counter-clockwise. 
If the result is negative, the sequence A-->B-->C is clockwise. 
5 голосов
/ 28 февраля 2012

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

...