函数
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
文章评论
催更~~