РЕДАКТИРОВАТЬ: см. Комментарии ниже:
Что по часовой стрелке? Дело в точке. Считаете ли вы этот путь по часовой стрелке?:
Если вы сказали «да», то как насчет этого?
Следует моему первоначальному предложению, которое отлично работает для выпуклых путей:
Вы можете использовать перекрестное произведение трехмерных векторов.
Если a, b два вектора, таких что:
a = (a1, a2, a3)
b = (b1, b2, b3)
Тогда кросс-произведение
axb = (a2b3-a3b2, a3b1-a1b3, a1b2 - a2b1)
Теперь, если вы предполагаете, что описанный вами путь не пересекается сам (что сводит на нет точку по часовой стрелке или против часовой стрелки), то все, что вам нужно, это первые три точки в том порядке, в котором они представлены. И из них вы создаете 2 вектора, чье перекрестное произведение вы можете вычислить.
Итак, при условии, что у вас есть эти пункты по порядку:
a = (a1, a2)
b = (b1, b2)
c = (c1, c2)
вы создаете следующие векторы:
A = (A1, A2) = ab = (b1-a1, b2-a2)
B = (B1, B2) = bc = (c1-b1, c2-b2)
и тогда вам нужна только третья координата AxB:
A1B2 - A2B1
или
(b1-a1) (c2-b2) - (b2-a2) (c1-b1)
Если эта координата положительная, то ваш путь идет против часовой стрелки, если он отрицательный, то по часовой стрелке.