У меня есть непересекающийся замкнутый векторный цикл, и я хочу определить, идет ли он против часовой стрелки или по часовой стрелке.
Вот тривиальный пример
[x y] = [0 0; 1 0; 1 1; 0 1; 0 0]
против часовой стрелки и
[x y] = [0 0; 0 1; 1 1; 1 0; 0 0]
по часовой стрелке.
Есть ли хороший способ определить, по часовой стрелке или против часовой стрелки?
Изменить: больше примеров
[x, y] OR [x, y]
0 ,0 0, 0
1 ,0.5 0, 2
2 ,0 2, 2
2 ,2 2, 0
0 ,2 1, 0.5
0 ,0 0, 0
Теперь вышеуказанные точки соединяются только в заданном порядке. Мне нужно определить левый случай как против часовой стрелки и правый как по часовой стрелке.
[0,0]
? Являются ли ходы всегда дискретными целыми числами и т. д.? Разрешены ли числа кроме0
и1
? - person Dan   schedule 20.11.2015-pi
. Для против часовой стрелки они будут составлять+pi
. - person BillBokeey   schedule 20.11.2015sum(atan(diff(y)./diff(x)))
. Это правильно? - person Srimaya P.   schedule 20.11.2015[theta,~]=cart2pol(diff(x),diff(y))
, а затемsum(theta)
- person BillBokeey   schedule 20.11.2015X = [1, 0; 0, 1; -1, 0; 0, -1; 1, 0]; sum(cart2pol(diff(X(:,1)), diff(X(:,2))))
возвращает 0? - person Matthew Gunn   schedule 20.11.2015issorted(theta(1:end-1))
- person Srimaya P.   schedule 20.11.2015issorted(theta(1:end-1))
для выпуклой оболочки. - person Srimaya P.   schedule 20.11.2015