opengl 保存当前矩阵的问题 求高人
我在做三维图形的旋转和平移的时候发现一个问题
将三维图形旋转一定角度,显示为三维图形,但是做平移的时候,就转为二维图形然后再平移
我想把旋转后的图形保存,然后将这个图形以三维的形式进行平移,程序如下:
void COpenGLPlatView::OnDraw(CDC* pDC)
{
COpenGLPlatDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
wglMakeCurrent(pDC->GetSafeHdc(), m_hRC);
glClearColor(1,1,1,0);
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
glTranslated(0.0, 0.0, 0.0);
//旋转角度
if(m_bRotate==TRUE)
{
glPopMatrix();
glMatrixMode(GL_MODELVIEW);//把后面的矩阵操作施加于造型视图矩阵栈
glRotatef(xrof,1.0f,0.0f,0.0f);//x轴
glRotatef(yrof,0.0f,1.0f,0.0f);//y轴
glRotatef(zrof,0.0f,0.0f,1.0f);//z轴
glPushMatrix();
}
if(m_bMove==TRUE)
{
glPopMatrix();
glMatrixMode(GL_MODELVIEW);//把后面的矩阵操作施加于造型视图矩阵栈
glTranslated(xmove, ymove, 0.0);
glPushMatrix();
}
...............
}
我想每次进行一次矩阵操作后,就把结果压入矩阵栈中,然后进行下一次操作的时候,再把前面压入的矩阵弹出来,但是上面的程序不能实现这个效果
怎么办???