Как я могу получить направление с этого угла? (нужна помощь по математике)

Я пытаюсь сделать очень простую игру. В нем у меня есть объекты (Circles), которые имеют xDirection и yDirection, оба из которых могут варьироваться от -1 до 1.

У меня есть еще один объект, который пользователь (Pointer) может вращать поверх Circles. Я добился этого поворота, скопировав некоторый код, который я нашел в Интернете, который дал мне angle из Pointer от оси Y, которая проходит через центр Circle. (Это ).

Теперь я хотел бы, чтобы «игровой процесс» был случаем, когда пользователь наклоняет указатель в направлении, в котором он хочет, чтобы круг двигался. Если у меня есть этот угол, могу ли я вычислить xDirection и yDirection для круга?

Очень ценю любую помощь, я знаю, что мне нужно работать над моей математикой! О, и я технически работаю с javascript, но я думаю, что есть чисто математическое решение, которое можно было бы реализовать на многих языках?

введите здесь описание изображения


person Holly    schedule 26.08.2012    source источник


Ответы (1)


Если я правильно понимаю вашу проблему, это должно работать:

x = -sin(angle)
y = -cos(angle)
person Blender    schedule 26.08.2012
comment
Боже, я не могу поверить, как просто это должно быть. Вы отвечаете, предполагая, что угол выражен в радианах или градусах? Это почти работает, за исключением того, что я обнаружил, что движения влево и вправо работают по желанию, вверх и вниз меняются местами, а диагонали расходятся под прямым углом. Я продолжу возиться с этим .. (действительно собираюсь выучить математику после этого, это просто базовая тригонометрия?) - person Holly; 26.08.2012
comment
Это зависит от вас. Если вы используете JS, Math.cos() и Math.sin() ожидают, что угол будет в радианах. - person Blender; 26.08.2012
comment
Благодарю вас! В конце концов я понял, что мне нужно вычесть угол перед расчетом, а не результат расчета. - person Holly; 26.08.2012