gpt4 book ai didi

c++ - glTranslatef 沿对角线移动而不是沿主轴移动

转载 作者:行者123 更新时间:2023-11-30 03:59:14 25 4
gpt4 key购买 nike

我想在按键时在 x 轴上移动我的对象。但它看起来像对角线移动(左上和右下)这是我的代码:按键代码:

switch(key)
{
case 'a':
x++;
break;

case 'b':
x--;
break;
}

关于 OpenGL 部分:

glMatrixMode(GL_PROJECTION);    
glLoadIdentity();
gluPerspective(30, 1 , 1 , 1000);

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();


gluLookAt(100, 100, 100, 0, 0, 0, 0, 1, 0);
glTranslatef(x;0,0);

为什么 glTranslatef 工作异常,我该如何解决?谢谢。

最佳答案

在翻译之前,您很可能正在轮换。这将旋转整个坐标空间,您的“沿 x 轴的平移”实际上将完全不同。

将来,请确保平移、缩放,然后旋转。这样每个转换都会按照您的意图进行,而不会被先前的转换所操纵。我建议您多研究一下矩阵、坐标空间和 OpenGL。

此外,glTranslatef 和其他矩阵堆栈函数已弃用。查看现代 OpenGL。

编辑:

gluLookAt 旋转以面向观察点。因此,涉及轮换。如果您不想要这个,请将它们切换过来。此外,这不是您的完整代码,它缺少 glMatrixMode 调用。

关于c++ - glTranslatef 沿对角线移动而不是沿主轴移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27013779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com