Iphone OpenGL: gluLookAt X, Z для поворота (360): угол курса - PullRequest
0 голосов
/ 08 декабря 2010

Программа OpenGL, которую я пишу, использует порт glULookat для управления камерой

Для поворота у меня есть следующий код

case ActionTurnLeft: 
center[0] = eye[0] + cos(-SPEED_TURN)*v[0] - sin(-SPEED_TURN)*v[2]; 
center[2] = eye[2] + sin(-SPEED_TURN)*v[0] + cos(-SPEED_TURN)*v[2]; 


break;

case ActionTurnRight: center [0] = eye [0] + cos (SPEED_TURN) * v [0] - sin (SPEED_TURN) * v [2];центр [2] = глаз [2] + грех (SPEED_TURN) * v [0] + cos (SPEED_TURN) * v [2];

Мой вопрос: как мне получить угол поворота в градусах?

Обновлено: Попробовал это, и это дало мне значение -572 до 572

float rotAngleDegs;
float PI = 3.1415926535897;
rotAngleDegs = (cos(-SPEED_TURN)*v[0] - sin(-SPEED_TURN)*v[2]) * 180 / PI;
NSLog(@"%f", rotAngleDegs);

Ответы [ 3 ]

1 голос
/ 08 декабря 2010

Похоже, вы используете матрицу вращения. Запись в матрице вращения Википедии

-SPEED_TURN - угол поворота в радианах, который можно преобразовать в градусы путем умножения на коэффициент 180 / PI.

1 голос
/ 08 декабря 2010

Чтобы получить угол в градусах, просто умножьте угол в радианах на 180 / PI, где PI = 3.1415926535897. В этом случае угол поворота в радианах - это весь фрагмент кода после элемента eye [].

rotAngleDegs = (cos (-SPEED_TURN) * v [0] - sin (-SPEED_TURN) * v [2]) * 180 / PI

0 голосов
/ 10 декабря 2010

Увеличение числа поплавков вращением + = 2.865;казалось, на самом деле работает LOL

...