2010-11-09 3 views
0

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

ответ

3

Angle between mouse positions

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

θ = θ -θ

Где:

θ = Math.atan2 (y1, x1);

θ = Math.atan2 (y2, x2);

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

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

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

1

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

+0

... Что? Почему 'atan2()'? –

+0

@Christian: Потому что он превращает x и y в угол. –

+0

Я был с тобой до конца. Умножается на какую константу? –

Смежные вопросы