在我们使用OpenGL画点的时候,默认的中心是在屏幕的中心,左右,上下,前后都是-1到1的区间,如果我们需要绘制大于这个区间的点怎么办呢?
方法一:
我们可以将所有的需要绘制的点转化到-1到1的区间。
方法二:
缩放OpenGL的坐标轴,使得重新建立的坐标轴符合我们新的标准。
下面我们就用方法二来实现如何重建坐标轴:
重新建立坐标轴,我们需要利用正交视角,可以使用glortho函数实现。
void GLWidget::resizeGL(int width, int height)
{
GLfloat nRange = 100.0f;
if(0 == height)
height = 1;//防止一条边为0
glViewport(0, 0, (GLint)width, (GLint)height);//重置当前视口,本身不是重置窗口的,只不过是这里被Qt给封装好了
//glOrtho(left, right, bottom, top, near, far);
if (width <= height)
glOrtho(-nRange, nRange, -nRange*height/width, nRange*height/width, -nRange, nRange);
else
glOrtho(-nRange*width/height, nRange*width/height, -nRange, nRange, -nRange, nRange);
glMatrixMode(GL_PROJECTION);//选择投影矩阵
glLoadIdentity();//重置选择好的投影矩阵
// g