Ориентация может быть выведена из подписанной области. Вы можете вычислить подписанную область из суммы перекрестных произведений последовательных точек:
2 * area = (0, -radius) x (a, b) + (a, b) ⨯ (-a, b) + (-a, b) ⨯ (0, -radius)
С определением перекрестного произведения 2D:
(a, b) ⨯ (c, d) = a * d - b * c
Это дает вам:
area = a * radius + a * b
Используйте знак area
, чтобы определить, идет ли путь по часовой стрелке или против часовой стрелки (какой из них относится к тому, какой знак зависит от вашей системы координат).