函数
gluOrtho2D函数
参数有四个,gluOrtho2D(0.0, width, 0.0, height);。
gluOrtho2D是用来指定屏幕区域对应的模型坐标范围,我们自己所绘制的图形的坐标必须在这个范围内,不然看不到自己绘制的图形。
在没调用 gluOthor2d函数之前,窗口的中心坐标为(0,0);调用了这个函数之后窗口的中心坐标不再是(0,0)了,窗口的左下角才是(0,0)。
在没调用 gluOthor2d函数之前,坐标范围是 X:-1~1, Y:-1~1;调用了这个函数之后坐标范围是 X:0~width,Y:0~height。
glColor3f函数
在OpenGl中设置颜色,一般可以使用
glColor3f()。从函数名字就可以看出,它的参数应该有三个,类型是float型的。另外一点是它的参数值的范围是[0.0,1.0]一般的,可以将这三个参数值视为颜色的成分。
三个变量glColor3f(r, g, b)中参数r,g,b都是float型,并且范围都在[0.0,1.0],分别代表RGB里面的红,绿,蓝色,数值0表示不使用该颜色,数值1表示这个颜色取到最大值。例如
glColor3f(1.0, 0, 0); //表示红色,R
glColor3f(0, 1.0, 0); //表示绿色,G
glColor3f(0, 0, 1.0); //表示蓝色,B
可以放在很多地方,比如在主函数glutDisplayFun(),也可以放在绘画的时候,实际上多次调用这个函数,只默认最后一次,例如:
glBegin(GL_POINTS)
glColor3f(0.0, 1.0, 0.0); //绿色
glColor3f(1.0, 1.0, 0.0); //黄色
glVertex(0.25, 0.75, 0.0);
glEnd();
glColor3ub函数
glColor函数有很多,例如上面的glColor3f表示这个画图里面有三个参数,并且参数类型是float,这里的ub表示的是GLubyte无符号单字节整型,范围是0-255,那么用的时候可以这么用:
glColor3ub(0xe1, 0xe4, 0x39);
glColor3ub(225, 228, 57);//0xe1 = 255, 0xe4 = 228, 0x39 = 57
总结一下,glColor主要是映射,例如glColor3i这个i表示的是GLint,那么int的最大是2,147,483,647,如果你还是认为最大是255的话,那么如果你是glColor3i(255,0,0)就不是红色了,其实你传入的是255/2,147,483,647,接近于零,所以还是黑色。
那么可以用
#include "limits.h"
然后使用INT_MAX,用:
glColor3i(INT_MAX,0,0)
这样才是红色。
glViewport函数
glViewport(GLint x,GLint y,GLsizei width,GLsizei height)
默认情况下,视口被设置为占据打开窗口的整个像素矩形,窗口大小和设置视口大小相同,所以为了选择一个更小的绘图区域,就可以用glViewport函数来实现这一变换,在窗口中定义一个像素矩形,最终将图像映射到这个矩形中。例如可以对窗口区域进行划分,在同一个窗口中显示分割屏幕的效果,以显示多个视图。
- x
视区矩形的左下角,以像素为单位。 默认值为 (0,0)。 -
y
视区矩形的左下角,以像素为单位。 默认值为 (0,0)。 -
width
视区宽度。 首次附加到窗口的 OpenGL 上下文时, 宽度 和 高度 将设置为该窗口的尺寸。 -
height
视区的高度。 首次附加到窗口的 OpenGL 上下文时, 宽度 和 高度 将设置为该窗口的尺寸。
glBegin() & glEnd()函数
数据类型
GLboolean: 用于单布尔值。有自己的GL_TRUE和GL_FALSE。
GLint:有符号四字节整型。包含数值从−2,147,483,648 到 2,147,483,647。
GLuint: 无符号四字节整型,包含数值从0 到 4,294,967,295。
GLfloat:四字节精度IEEE 754-1985 浮点数。
GLvoid: void值用于指示一个函数没有返回值,或没有参数。
GLubyte: 无符号单字节整型,包含数值从0 到 255。
我认为常用得就是以上的内容,其他请见OpenGL 数据类型 - CSDN
催更~~