Как преобразовать движения мыши в вращение элемента

StackOverflow https://stackoverflow.com/questions/4131252

Вопрос

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

Это было полезно?

Решение

Angle between mouse positions

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

θ=θ12

Где:

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

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

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

Также на экране система координата перевернута, поэтому 0,0 находится в верхней части левой, а не лево дна, поэтому вам нужно перевернуть это, но математика по сути такая же.

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top