2010-12-08 60 views
0

的OpenGL圖像我寫使用glULookat的一個端口來控制相機iPhone的OpenGL:gluLookAt X,Z旋轉(360):標題角度

要旋轉我有以下代碼

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]; center [2] = eye [2] + sin(SPEED_TURN)* v [0] + cos(SPEED_TURN)* v [2];

我的問題是如何獲得度數的旋轉角度?

更新:嘗試這樣做,它給了我-572 ISH到572

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

回答

0

遞增浮動+ = 2.865;似乎實際上工作大聲笑

1

要獲得度的角度只是180/PI,其中PI = 3.1415926535897乘以弧度的角度。在這種情況下,以弧度爲單位的旋轉角度是eye []部分之後的整段代碼。

rotAngleDegs =(COS(-SPEED_TURN)* V [0] - SIN(-SPEED_TURN)* V [2])* 180/PI

+0

這產生非常奇怪的角度,我錯過了什麼? – Burf2000 2010-12-08 19:54:35

1

它看起來像您使用的是旋轉矩陣。 Wikipedia Rotation Matrix entry

-SPEED_TURN是以弧度表示的旋轉角度,通過乘以係數180/PI可以轉換爲度數。

+0

Speed_turn是一個固定值,例如#define SPEED_TURN 0.05 – Burf2000 2010-12-08 14:02:29