Попытка определить, является ли вектор движения CW или CCW вокруг точки - PullRequest
2 голосов
/ 15 июля 2011

Я пишу некоторый код сенсорного ввода для устройства iOS и должен определить, происходит ли движение пальца по часовой стрелке или против часовой стрелки относительно центра экрана.

Используя position и deltaPosition касания, я могу вычислить угол между векторами от центра экрана к этим точкам, используя скалярное произведение, но это не дает мне со знаком угол, чтобы решить, будет ли это CW или нет.

Как определить направление движения центра по центру?

1 Ответ

5 голосов
/ 15 июля 2011

Пусть A обозначает вектор свайпа, а B вектор от начала свайпа до центра экрана.Затем вы можете вычислить определитель компонентов A и B :

| A.x A.y |
| B.x B.y |

= A.x * B.y - B.x * A.y

Знак определителя скажет вам, B указывает на правую или левую сторону A .

Как правильно заметил Джереми В. Шерман, какой знак соответствует какому направлению зависит от того, каксистема координат экрана выложена.Если ось x проходит вправо, а ось y идет вниз, положительное значение означает CW, а отрицательное означает CCW (если я правильно понял умственную математику).Ноль всегда означает движение прямо к центру или прямо от него.

...