OpenGL-向前移动相机

OpenGL - Moving Camera forward

本文关键字:相机 移动 OpenGL-      更新时间:2023-10-16

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

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碰撞教程吗。。如果是的话,如果你分享,我将不胜感激。。

感谢阅读我的问题

我认为您的解决方案相当不错。我过去也使用过类似的解决方案。我会把/180和乘以PI组合成一个常数。

定义PI_OVER_180(3.141459f/180f)

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