我正在尝试使用openGl C++中的"gluLookAt()"执行一项简单的任务:"基于摄像机的运动".我想要的是允许cam在以下方案中通过键移动:
方向键:
←=向左转
→=向右转
↑=向上看
↓=向下看
W,S,A,D
W =前进
S =向后移动
A =左移(侧身)
D =向右移动(侧身)
Q,E
Q =左旋
E =右旋
到目前为止,我设法完成了我需要的所有类型的机芯,除了侧面使用键"A"和"D".无论我尝试多少都没关系,当我按下其中一个按键时,凸轮永远不会按照我希望它移动的方式移动.有人告诉我,我需要执行某种类型的"交叉产品",但是,尽管有一些试验,我真的迷路了.
//variables
float x1 = 0.0f, x2 = 0.0f, x3 = 0.0f, y1 = 1.0f, y2 = 1.0f, y3 = 1.0f, z1 = 5.0f, z2 = -1.0f, z3 = 0.0f;
//the camera
gluLookAt( x1, y1, z1, x1+x2, y2, z1+z2, x3, y3, z3);
//methods
void special(int key, int xx, int yy)
{
switch (key) {
case GLUT_KEY_LEFT :
camAngle -= …Run Code Online (Sandbox Code Playgroud)