怎么用OpenGL画两个立方体
我用的是visualstudio,我先画了一个立方体,然后想用translatef在别的地方使用相同的坐标画一个和前面一样的立方体,但是每次运行都只显示一个立方体,这是怎...
我用的是visual studio,我先画了一个立方体,然后想用translatef在别的地方使用相同的坐标画一个和前面一样的立方体,但是每次运行都只显示一个立方体,这是怎么回事,我怎么才能用相同的立方体坐标在两个不同的地方画出立方体呢
展开
2个回答
展开全部
使用压栈和退栈,glPushMatrix压栈,可以存储当前矩阵,glPopMatrix可以弹出上次存储的矩阵,比如你画正方形的代码写成一个DrawCube()函数,每次调用都调用的是同一个画正方形的代码,所以如果你连续调用两次会把第二个正方形覆盖第一个,所以你只能看到一个正方形。如果你把代码改成如下:
glPushMatrix();
DrawCube();// 画第一个正方形
glTranslatef(10,0,0);// 移动坐标,用于绘制第二个正方形
DrawCube();
glPopMatrix();
这样就可以显示两个正方形了。
glPushMatrix();
DrawCube();// 画第一个正方形
glTranslatef(10,0,0);// 移动坐标,用于绘制第二个正方形
DrawCube();
glPopMatrix();
这样就可以显示两个正方形了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询