OpenGL - 向前移动相机

时间:2012-01-09 22:56:18

标签: c++ opengl 3d camera glut

下面是我的代码,它让我可以向前移动相机它工作正常,但我总是想知道我是否以有效的方式编写代码..

void keyboard (unsigned char key, int x, int y) {

    if (key=='w')
    {
    float xrotrad, yrotrad;
    yrotrad = (yrot / 180 * 3.141592654f);
    xrotrad = (xrot / 180 * 3.141592654f); 
    xpos += float(sin(yrotrad))* 3 ;//move forward and initialise speed
    zpos -= float(cos(yrotrad))* 3 ;
    ypos -= float(sin(xrotrad))* 3 ;
    } 

好的这个问题刚好出现在我的脑海里:有没有人知道网上有任何好的OpenGL碰撞教程..如果是的话,如果你愿意,那就更感激了..

感谢您阅读我的问题

1 个答案:

答案 0 :(得分:1)

我认为您的解决方案非常好。我过去曾使用过类似的解决方案。我会将/ 180和PI乘以一个常数。

定义PI_OVER_180(3.141459f / 180f)

这应该保证如果预处理器或编译器执行常量表达式,则不必每次都执行该计算。