在按键时更改 gluLookAt。上、右、下、左

Posted

技术标签:

【中文标题】在按键时更改 gluLookAt。上、右、下、左【英文标题】:Change gluLookAt on key press. Top, Right, Bottom, Left 【发布时间】:2016-03-18 21:02:18 【问题描述】:

我正在尝试更改按键时的 gluLookAt。例如,我想通过按 t、r、b、l 键从顶部、右侧、底部和左侧查看我的场景。我从顶部开始实现外观,但在按下“t”键时它似乎不起作用,我的场景没有任何变化。我做错了什么?

这是我的 keyResponder 方法:

void  CDrawModel::myKeyResponder(unsigned char key, int x, int y)  
if(key == 27)                              // The ESC key
    glutDestroyWindow(glutGetWindow());     // kill the window
    exit(0);



if (key == 't' || key == 'T')  
    gluLookAt(0, 600, 0,
        0, 0, 0,
        0, 600, 1);
    cout << "T ot t pressed" << endl;


//refresh the screen after every key press...
glutPostRedisplay();

【问题讨论】:

看来你不知道向上向量是做什么的。 Check this question.除此之外,你发的sn-p太模糊了。我们不知道您对矩阵进行了何种初始化以及如何渲染场景。 【参考方案1】:

当您按下“t”按钮时,您在 lookAt 上的向上矢量必须为 (0,0,-1)。

意思是gluLookAt必须有这个参数:

gluLookAt(0,600,0, 0,0,0, 0,0,-1)

建议:尝试理解向量 up 对视图的意义。

【讨论】:

谢谢!会试试这个:)

以上是关于在按键时更改 gluLookAt。上、右、下、左的主要内容,如果未能解决你的问题,请参考以下文章

如何将 TextBox 中的书写从右到左更改为从左到右?

Opengl视点转换如何gluLookAt

两个Sphere和gluLookAt函数之间的OpenGL碰撞

在 OpenGL 上绘制点的意外 gluLookAt 行为

使用 gluLookAt() 横向移动; C++

gluLookAt 问题 - 如何使曲线运动?