Как преобразовать движения мыши в поворот элемента - PullRequest
0 голосов
/ 09 ноября 2010

Я создаю элемент управления колесом. Идея в том, что вы вращаете колесо до тех пор, пока не появится предмет, над которым вы хотите действовать, затем нажимаете на него или что-то еще. Я пытаюсь выяснить, как перевести движения мыши пользователя (x & y) в число градусов для вращения колеса. Я могу все это реализовать, я просто скучаю по математике, чтобы сделать преобразование. Любая помощь или указатели приветствуются!

Ответы [ 2 ]

4 голосов
/ 09 ноября 2010

Angle between mouse positions

Если пользователь перемещает мышь с [x1, y1] на [x2, y2], то, что вы в основном хотите, это найти

θ = θ 1 2 * +1010 *

Где:

θ 1 = Math.atan2 (y1, x1);

θ 2 = Math.atan2 (y2, x2);

Теперь все это зависит от того, где вы определяете свое происхождение (центр вашего колеса). Если ваш источник [x0, y0], то просто вычтите эти значения из фактических координат мыши.

Также на экране система координат находится вверх ногами, поэтому 0,0 слева вверху, а не внизу слева, поэтому вам нужно будет перевернуть это, но математика по сути та же самая 1024 *

Также обратите внимание, что угол измеряется в радианах, а не в градусах.

1 голос
/ 09 ноября 2010

Возьмите atan2() двух последующих позиций, смещенных от центра управления, и измените значение на дельту углов, умноженную на постоянную.

...