怎么用OpenGL画两个立方体我用的是visual studio,我先画了一个立方体,然后想用translatef在别的地方使用相同的坐标画一个和前面一样的立方体,但是每次运行都只显示一个立方体,这是怎么回事,我

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 22:38:02
怎么用OpenGL画两个立方体我用的是visual studio,我先画了一个立方体,然后想用translatef在别的地方使用相同的坐标画一个和前面一样的立方体,但是每次运行都只显示一个立方体,这是怎么回事,我

怎么用OpenGL画两个立方体我用的是visual studio,我先画了一个立方体,然后想用translatef在别的地方使用相同的坐标画一个和前面一样的立方体,但是每次运行都只显示一个立方体,这是怎么回事,我
怎么用OpenGL画两个立方体
我用的是visual studio,我先画了一个立方体,然后想用translatef在别的地方使用相同的坐标画一个和前面一样的立方体,但是每次运行都只显示一个立方体,这是怎么回事,我怎么才能用相同的立方体坐标在两个不同的地方画出立方体呢

怎么用OpenGL画两个立方体我用的是visual studio,我先画了一个立方体,然后想用translatef在别的地方使用相同的坐标画一个和前面一样的立方体,但是每次运行都只显示一个立方体,这是怎么回事,我
使用压栈和退栈,glPushMatrix压栈,可以存储当前矩阵,glPopMatrix可以弹出上次存储的矩阵,比如你画正方形的代码写成一个DrawCube()函数,每次调用都调用的是同一个画正方形的代码,所以如果你连续调用两次会把第二个正方形覆盖第一个,所以你只能看到一个正方形.如果你把代码改成如下:
glPushMatrix();
DrawCube();// 画第一个正方形
glTranslatef(10,0,0);// 移动坐标,用于绘制第二个正方形
DrawCube();
glPopMatrix();
这样就可以显示两个正方形了.