Iphone: OpenGL glLookAt: получение угла поворота - PullRequest
0 голосов
/ 21 июля 2011

Я использую glLookAt для управления видом моей камеры.

Я использую следующий код для вращения.

SPEED_TURN - это константа 0,16 (скорость, с которой мы поворачиваемся)

GLfloat v[] = {[self centerAtIndex:0] - [self eyeAtIndex:0],
    [self centerAtIndex:1] - [self eyeAtIndex:1], 
[self centerAtIndex:2] - [self eyeAtIndex:2]}; 

[self setCenter:[self eyeAtIndex:0] + cos(SPEED_TURN / 2)*v[0] - sin(SPEED_TURN / 2)*v[2] atIndex:0];
[self setCenter:[self eyeAtIndex:2] + sin(SPEED_TURN / 2)*v[0] + cos(SPEED_TURN / 2)*v[2] atIndex:2]; 

У меня вопрос, как узнать угол наклона камеры в градусах?

Я пробовал это

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

Однако, которые дают числа от -620 до + 620

Ответы [ 2 ]

1 голос
/ 22 июля 2011

Я не думаю, что вы пробуете правильные функции, чтобы дать вам угол. Функции "cos ()" и "sin ()" принимают ваш угол и отображают его на [-1,1]. Если SPEED_TURN - это угол в радианах, то вы просто должны использовать:

float angleInDegrees = (SPEED_TURN * 180) / M_PI;
1 голос
/ 22 июля 2011

Возьмите нужные вам деградации и умножьте их на число деленное пи на 180. Затем вы получите радианы для ввода:

Radians = Degrees * (pi / 180)

Чтобы получить градусы от радиан:

Degrees = Radians * (180 / pi)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...