好的,我已完成gluLookAt()
功能的前后移动
我从eyeX
中减去atX
,从eyeZ
减去atZ
。每个变量的名称为xVector
和zVector
。并且我将它与常量相加。
从现在开始,我必须计算侧移运动矢量。但我怎么能得到那个呢?有没有办法用z和x向量将摄像机从一侧移到另一侧?
我使用C,所以没有矢量类或某种高级类/函数 我现在需要你们的帮助。
这是我的相机移动处理功能,
void cameraProc() {
int xInc, zInc;
at[0] += xTheta;
at[1] += yTheta;
if (keys['w']) {
eye[0] += xInc*SPD;
at[0] += xInc*SPD;
eye[2] += zInc*SPD;
at[2] += zInc*SPD;
}
if (keys['a']) {
//How?
}
if (keys['s']) {
eye[0] -= xInc*SPD;
at[0] -= xInc*SPD;
eye[2] -= zInc*SPD;
at[2] -= zInc*SPD;
}
if (keys['d']) {
//And how?
}
printf("\nEye : %f %f %f\n", eye[0], eye[1], eye[2]);
printf("At : %f %f %f\n", at[0], at[1], at[2]);
gluLookAt(eye[0], eye[1], eye[2], at[0], at[1], at[2], up[0], up[1], up[2]);
at[0] -= xTheta;
at[1] -= yTheta;
}
P.S。 xTheta
和yTheta
是旋转相机的变量。