我正在编写的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;
案例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到572
float rotAngleDegs;
float PI = 3.1415926535897;
rotAngleDegs = (cos(-SPEED_TURN)*v[0] - sin(-SPEED_TURN)*v[2]) * 180 / PI;
NSLog(@"%f", rotAngleDegs);
答案 0 :(得分:1)
要获得以度为单位的角度,只需将弧度的角度乘以180 / PI,其中PI = 3.1415926535897。在这种情况下,以弧度为单位的旋转角度是eye [] part之后的整段代码。
rotAngleDegs =(cos(-SPEED_TURN)* v [0] - sin(-SPEED_TURN)* v [2])* 180 / PI
答案 1 :(得分:1)
看起来你正在使用旋转矩阵。 Wikipedia Rotation Matrix entry
-SPEED_TURN是以弧度表示的旋转角度,可以通过乘以系数180 / PI将其转换为度数。
答案 2 :(得分:0)
通过旋转增加浮点数+ = 2.865;似乎实际上工作大声笑