侧镜在OpenGL中移动

时间:2017-04-19 14:47:40

标签: c opengl

好的,我已完成gluLookAt()功能的前后移动 我从eyeX中减去atX,从eyeZ减去atZ。每个变量的名称为xVectorzVector。并且我将它与常量相加。

从现在开始,我必须计算侧移运动矢量。但我怎么能得到那个呢?有没有办法用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。 xThetayTheta是旋转相机的变量。

0 个答案:

没有答案