gpt4 book ai didi

OpenGL glTranslatef/glRotatef 无法正常工作

转载 作者:行者123 更新时间:2023-12-01 11:00:57 26 4
gpt4 key购买 nike

我正在尝试创建一个多边形并在松开鼠标按钮时平移/旋转它。如果我使用 glBeginglEnd 重新绘制我的整个多边形,我可以做到这一点,但我不确定我是否真的需要这个,因为我已经在上面绘制了多边形屏幕一次,只想使用同一个对象并对其应用旋转/平移。

我在下面放了一个片段。

if(state == GLUT_UP){

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glClear(GL_COLOR_BUFFER_BIT);
glPushMatrix();
glRotatef(90,0,0,1);
// glTranslatef(50,-50,0);
/*
glBegin(GL_POLYGON);
glVertex2i (-40,40) ; //Specify li ne - se gme nt ge ometry .
glVertex2i (-30 , -40) ;
glVertex2i (0 , 20) ;
glVertex2i (40 , 35) ;
glEnd() ;
*/
glClear(GL_COLOR_BUFFER_BIT);
glPopMatrix();
glutSwapBuffers();
// glutPostRedisplay();
}

最佳答案

请跟我说:“我再也不会将 OpenGL 绘图调用放入事件处理程序中了!”

在事件处理程序中,您根据事件设置一些变量,然后发出重绘调用,并在渲染函数中根据变量的内容进行绘制。

更新:

此外,OpenGL 不会“记住”您绘制的内容。您发送绘图命令,OpenGL 执行它的操作,然后忘记它。留下的唯一痕迹是在帧缓冲区上变成像素的片段。但帧缓冲区内容不受转换或任何 OpenGL 状态更改的影响。只有绘图会影响帧缓冲区。

关于OpenGL glTranslatef/glRotatef 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12700199/

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