在opengl中,如何在不重画图形的基础上放大,缩小图形?

qwx2000 2007-01-25 10:13:36
举个例子,画一个立方体:
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()来重画,如何能够不重画就实现放大的功能?因为实际的画图函数数据量太大,而且在实时更新;

...全文
269 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenyongjie 2007-02-04
  • 打赏
  • 举报
回复
要重画的,这东西最麻烦,俺做过
Y___Y 2007-01-26
  • 打赏
  • 举报
回复
不大可能吧
不重画怎么显示呢?
加快显示速度可以用显示列表
我来看看CB 2007-01-26
  • 打赏
  • 举报
回复
好像不行

13,874

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧