在opengl中,如何在不重画图形的基础上放大,缩小图形?
举个例子,画一个立方体:
void __fastcall TForm1::RenderGLScene()
{
` glBegin( GL_LINE_STRIP );
glColor3f( 0.0, 1.0, 0.0 );
glVertex3f(0,0,10.0);
glVertex3f(0,10.0,10.0);
glVertex3f(10.0,10.0,10.0);
glVertex3f(10.0,0.0,10.0);
glVertex3f(0.0,0.0,10.0);
glVertex3f(0,0.0,0.0);
glVertex3f(10.0,0.0,0.0);
glVertex3f(10.0,0.0,10.0);
glVertex3f(10.0,0.0,0.0);
glVertex3f(10.0,10.0,0.0);
glVertex3f(10.0,10.0,10.0);
glVertex3f(0,10.0,10.0);
glVertex3f(0,10.0,0.0);
glVertex3f(10.0,10.0,0.0);
glVertex3f(0,10.0,0.0);
glVertex3f(0,0.0,0.0);
glEnd();
}
接着我希望放大图形
方法1:
void __fastcall TForm1::Button5Click(TObject *Sender)
{
glScalef(5,5,5) ;
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
RenderGLScene();
glFlush();
}
方法2:
使用 glOrtho()函数
但是两种方法都要用RenderGLScene()来重画,如何能够不重画就实现放大的功能?因为实际的画图函数数据量太大,而且在实时更新;