OpenGl中使用裁剪面缩放图形

编者:李国帅

qq:9611153 微信lgs9611153

时间:2018/11/28

背景原因:

在图形绘制中,需要用到把获取的数据(数据范围-10,10)放入绘图平面,但是由于OpenGL默认坐标值只能从-1到1。直接显示数据矩阵显然不行,那就需要用到缩放。

 

所需资源:

Opengl,vc等开发工具

 

解决方案:

通用的解决方法就是使用裁剪面的移动来实现。

首先,使用glFrustum设置裁剪面,简单的方法就是在Z=1的位置设置一个1*1的裁剪面。

OpenGl中使用裁剪面缩放图形

要显示图形的时候,首先清除矩阵glLoadIdentity (),然后使用glTranslatef函数把图形设置到远离视点的裁剪面,就实现了图形的缩放。

当移动到可见近裁剪平面位置处的时候,

代码如下

OpenGl中使用裁剪面缩放图形

OpenGl中使用裁剪面缩放图形

当移动到远距时

OpenGl中使用裁剪面缩放图形

OpenGl中使用裁剪面缩放图形

问题解决:

如此便可以直接把大于默认裁剪面的数据直接使用的绘图中。

OpenGl中使用裁剪面缩放图形

OpenGl中使用裁剪面缩放图形