Перевернуть угол, используя радианы - PullRequest
5 голосов
/ 15 февраля 2010

Привет, все, что вы там делаете, математики!

У меня проблемы с математикой. Надеюсь, вы мне поможете. Я рассчитал угол направления, используя радианы. В OpenGL ES я двигаю своего парня, меняя значение балла следующим образом:



spriteLocation.x -= playerSpeed * cosf(playerRadAngle);
spriteLocation.y -= playerSpeed * sinf(playerRadAngle);

// playerRadAgnle is my angle of direction using radians

Это очень хорошо работает, чтобы переместить мой спрайт в правильном направлении. Однако я решил оставить спрайт «заблокированным» в середине экрана и вместо этого переместить фон. Это требует, чтобы я изменил мой рассчитанный угол. Если направление моего спрайта в радианах равно 90 градусам, я хочу преобразовать его в 270 градусов. Снова, сохраняя все в радианах.

Я признаю, что мои знания о Триге в лучшем случае плохие. Есть ли способ определить противоположный угол, используя радианы? Я знаю, что могу преобразовать свои радианы в градусы, затем добавить / вычесть 180 градусов, а затем преобразовать обратно в радианы, но я ищу что-то более эффективное.

Заранее спасибо ....

-Скотт

Ответы [ 3 ]

15 голосов
/ 15 февраля 2010

Добавить / вычесть pi вместо.

0 голосов
/ 07 декабря 2018

Вам нужно добавить Pi, а затем использовать остаток после деления на 2 Pi (чтобы ограничить его в пределах [0; 2 Pi] диапазона).

JavaScript:

function invertAngle(angle) {
  return (angle + Math.PI) % (2 * Math.PI);
}
0 голосов
/ 04 июня 2017

object_sprite.rotation = warp_direction - 3.14;

...