Как преобразовать движения мыши в вращение элемента
Вопрос
Я строю управление меню колес. Идея заключается в том, что вы вращаете колесо до тех пор, пока предмет, на котором вы хотите действовать, не будет представлять, затем нажимаете на него или что -то еще. Я пытаюсь выяснить, как перевести движения мыши пользователя (x & y) в количество градусов, чтобы вращать колесо. Я могу реализовать все это, я просто упускаю математику, чтобы сделать конверсию. Любая помощь или указатели благодарны!
Решение
Если пользователь перемещает мышь из [x1, y1] в [x2, y2], вы в основном хотите найти
θ=θ1-θ2
Где:
θ1 = Math.atan2 (y1, x1);
θ2 = Math.atan2 (y2, x2);
Теперь все это зависит от того, где вы определяете свое происхождение (центр вашего колеса). Если ваше происхождение [x0, y0], то просто вычтите эти значения из фактических координат мыши.
Также на экране система координата перевернута, поэтому 0,0 находится в верхней части левой, а не лево дна, поэтому вам нужно перевернуть это, но математика по сути такая же.
Также обратите внимание, что угол измеряется в радианах, а не в градусах.
Другие советы
Принять atan2()
из двух последующих положений смещено из центра управления и измените значение на дельте углов, умноженные на постоянную.