下面是我的代码,它让我可以向前移动相机它工作正常,但我总是想知道我是否以有效的方式编写代码..
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碰撞教程..如果是的话,如果你愿意,那就更感激了..
感谢您阅读我的问题
答案 0 :(得分:1)
我认为您的解决方案非常好。我过去曾使用过类似的解决方案。我会将/ 180和PI乘以一个常数。
这应该保证如果预处理器或编译器执行常量表达式,则不必每次都执行该计算。