你好我正在一个项目上工作,并且我遇到了问题 当我移动主要对象时,屏幕/地面抖动。当对象移动时屏幕抖动
通常当我用“w”按钮移动时,我没有遇到问题。 但如果移动时,我旋转相机我得到了问题。
查看:用鼠标右键点击30度(不释放按钮) 并在旋转物体时保持w按钮。 你会看到地面的震动。
我认为问题是关于我的looat函数计算。
gluLookAt(sin(rot*PI/180)*(10-fabs(roty)/4) +movex ,3-(roty/2), cos(rot*PI/180)*(10-(fabs(roty)/4)) +movez , -sin(rot*PI/180)*6 + movex, roty, -cos(rot*PI/180)*6 +movez, 0, 1, 0);
这是我的旋转功能。在这个func之后我画了一切。
void System::rotater(){
if(mouseStates[2][0]==1 && mx!= savex && mx!=mouseStates[2][1]){
rot += (mx-mouseStates[2][1]) * 90/glutGet(GLUT_WINDOW_WIDTH)/2;
if(rot>360)rot-=360;
if(rot<0)rot= 360+rot;
}
glRotatef(rot,0,1,0);
}
和最后我的举动选项是在这里:
if(a==87 || a==119){
movex -= sin(rot*PI/180)/3;
movez -= cos(rot*PI/180)/3;
}
请不要让人下载并执行未知的二进制文件。如果必须,请通过pastebin或gitourious,github等存储库提供完整的源代码。 **但没有BINARY EXECUTABLES!** – datenwolf
好的,我编辑并添加了完整的源代码。 – nadirg
我认为问题是关于窦余弦函数。 因为我不能看到没有它们的动摇 gluLookAt(movex,3-(roty/2),movez +5,movex,roty,movez,0,1,0); 但我需要他们从后面跟踪物体。 – nadirg