openGL-使用gluLookAt在对象上方和下方旋转

openGL - Rotating above and below an object using gluLookAt

本文关键字:方旋转 旋转 openGL- gluLookAt 对象 使用      更新时间:2023-10-16

我在开放GL中有一个立方体。我让立方体通过乘以旋转矩阵来旋转。我还让相机在x轴上使用gluLookAt围绕立方体旋转,如下所示。

    case 'j':
        eyeX = 10*cos(angle);
        eyeZ = 10*sin(angle);
        centerX = -cos(angle);
        centerZ = -sin(angle);
        angle -= 0.1;
        break;
    case'l':
        eyeX = 10*cos(angle);
        eyeZ = 10*sin(angle);
        centerX = -cos(angle);
        centerZ = -sin(angle);
        angle += 0.1;
        break;

其中

gluLookAt( eyeX, eyeY, eyeZ, centerX, centerY, centerZ, 0.0, 1.0, 0.0);

我正在努力让相机在y轴上围绕立方体旋转。

使凸轮绕物体旋转

  • 从凸轮世界位置减去物体的世界位置,

    cam_pos_os=cam_pos_ws-对象_pos_ws-

  • 旋转指向cam_pos_os的矢量,就像在代码中的世界空间中一样

  • 将对象的世界位置再次添加到对象空间中的凸轮位置,

    cam_pos_ws=cam_pos_os+对象_pos_ws