Вопрос

Привет всем вам, математические гении!

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



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

// playerRadAgnle is my angle of direction using radians

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

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

Заранее благодарю....

-Скотт

Это было полезно?

Решение

Сложение / вычитание pi вместо этого.

Другие советы

объект_спрайт.вращение = деформация_направление - 3.14;

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

JavaScript:

function invertAngle(angle) {
  return (angle + Math.PI) % (2 * Math.PI);
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top