2015-06-01 4 views
1

Я хочу, чтобы символ вращался, чтобы указать на мышь. Я использую эту функцию, но она не работает ниже символа. Функция обратного tan имеет диапазон 180 градусов вправо? Итак, как я могу получить 360 градусов движения?Как я могу сделать точку символа мыши?

Должен ли я добавить инструкцию if для проверки положения мыши или есть более элегантное решение?

function panelTrack(){ 
    angle = -180/Math.PI * Math.atan((mouseX - panel.x)/(mouseY - panel.y)); 
    panel.rotation = angle; 
    trace(panel.rotation); 
} 

ответ

0
const radiance:Number=180/Math.PI;  

angle=-(Math.atan2(mouseX-panel.x, mouseY-panel.y))*radiance; 

Я использовал минус, потому что обычно ориентация обратная, когда вы не добавляете минус.

надеюсь, что это поможет.

+0

Блестящий, спасибо! – AndyMoore

+0

добро пожаловать. так почему вы не отмечаете мой ответ? – HITMAN

+0

А хорошо, что раньше не заметил галочку. Довольно новый для использования переполнения стека - все время приходил к ответам, поэтому сделал учетную запись – AndyMoore

3

Математика не моя сильная сторона - поэтому, возможно, кто-то даст лучший ответ, но, чтобы получить все 4 квадранта, вам нужно использовать atan2.

angle = Math.atan2(mouseY - panel.y, mouseX - panel.x) * 180/Math.PI; 

Я припоминаю, что он должен делать с чеком на значение 0 (что Math.atan не делает).

+0

IIRC 'Math.atan2()' не выдумывается, если к нему передаются нули. Таким образом, этот код безопасен. – Vesper

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