QT与OpenGL之整体缩放

最近对整体缩放这块一直卡壳了,google了很久,百度了不少,一直无果。

最后在接近无望之际,用了最老土的办法,写一个简单的test程序,然后测试效果。让人想不到的是,这种效果竟然起效了。下面就来谈谈为什么卡壳了吧以及解决办法。

我一直想要解决的问题是沿着Z轴(差不多就是对Z轴缩放了)缩放,因为我有事需要放大很多倍我的图才能看清里面的东西。

解决:

gluPerspective()函数  +  glTranslatef()函数。

首先来看看gluPerspective(GLdouble fovy,GLdouble aspect,GLdouble zNear,GLdouble zFar)函数:

其实你要是让我清清楚楚的说明白这个函数,恐怕有点困难,而且我也不想说错了误导大家,我主要用到了最后两个参数,用此来设定放大缩小的范围:

zNear,zFar是到观察原点的距离(沿着z的负轴方向),因此这两个数应该总数设定成正数。

具体的关于此函数的讲解,我给大家介绍两个不错的博客:

http://www.cnblogs.com/chengmin/archive/2011/09/12/2174004.html

http://blog.csdn.net/hbuxiaoshe/article/details/5062794


然后来看看glTranslatef(x, y, z)函数:

此函数用来设定沿着某个坐标轴移动,三个参数表示三个坐标轴。

我只是想提醒一点:在glTranslatef(x, y, z)中,当您移动的时候,您并不是相对屏幕中心移动,而是相对与当前所在的屏幕位置。

具体的介绍请看:

http://www.cnblogs.com/yujunyong/archive/2011/04/17/2018776.html



你可能感兴趣的:(Qt,OpenGL)