【QT+OPENGL】opengl的一些基本函数

OpenGL是一个图形库,其函数命名遵循特定规则,如gl开头加函数名和类型后缀。点、线和面是基本图形元素,通过glBegin/glEnd命令组定义。点的大小、线的宽度可通过函数设置。GL_POINTS用于绘制点,GL_LINES用于线,GL_TRIANGLES等用于填充三角形。颜色管理使用glColor*函数,RGBA模式或颜色索引模式。此外,颜色缓冲区可被清除。
摘要由CSDN通过智能技术生成

(1)opengl基本函数的定义规则说明:

opengl的库函数命名方式:前缀+函数名+后缀
前缀:gl、glu、glx或aux,表示此函数分属于基本库、实用库、X窗口扩充库或辅助库
后缀:是函数传参类型的简写,例如i代表int,f代表float.s代表short,d代表double,v代表指针

glVertex2i(1,5);
glVertex3f(1.0,5.0,2.0);

上面例子中函数后缀还存在2、3、4的数字,分别代表2维、3维、4维,也就是参数的个数

(2)opengl的图形

(2.1)点 glVertex×

//设置点的大小,默认值为1.0f,单位为“像素”
glPointSize(5.0f);

OpenGL中描述一个面(线、点)的方法是glBegin/glEnd命令组: 
glBegin(GL_POINTS); //图元常量,代表点
glVertex(顶点1); 
glVertex(顶点2); 
  …… 
glEnd();

(2.2)线 glVertex×

//设置线的宽度
glLineWidth(5.0f);

OpenGL中描述一个面(线、点)的方法是glBegin/glEnd命令组: 
glBegin(GL_LINES); //图元常量,代表线,连接每一对相邻定点而得到一组直线段
glVertex(顶点1); 
glVertex(顶点2); 
glVertex(顶点3); 
glVertex(顶点4); 
  …… 
glEnd();

说明:

如果使用图元:GL_LINE_STRIP,则会将所有的点连成折线;

如果使用:GL_LINE_LOOP,则会将所有的点连城一个闭合的线段;

如果使用:glEnable(GL_LINE_STIPPLE),则会启动虚线;关闭虚线使用glDisable(GL_LINE_STIPPLE)

(2.2)面-三角形,以内部填充的方式画三角

三角的图元常量有三种:GL_TRIANGLES、GL_TRIANGLE_STRIP、GL_TRIANGLE_FAN,

glVertex2iv(p1); //顶点1
glVertex2iv(p2); //顶点2
glVertex2iv(p3); //顶点3
glVertex2iv(p4); //顶点4
glVertex2iv(p5); //顶点5
glVertex2iv(p6); //顶点6
glVertex2iv(p7); //顶点7
glVertex2iv(p8); //顶点8

其中

GL_TRIANGLES:会生成多个三角形,每相邻三个顶点生成一个三角形

GL_TRIANGLE_STRIP:其填充方式是;v0v1v2、v1v2v3、v2v3v4、v3v4v5,不包括前一个点

GL_TRIANGLE_FAN:是始终以第一个点为起始点,扩散式组合:v0v1v2、 v0v2v3 、v0v3v4

(2.2)面-多边形

GL_QUADS:跟GL_TRIANGLES类似,每隔4个点组成一个四边形

GL_QUAD_STRIP:跟GL_TRIANGLE_STRIP类似

GL_POLYGON:多边形。

绘制矩形还可以使用:

glRectf(左上角x,左上角y,右下角x,右下角y);

(3)opengl的颜色

(3.1)RGBA模式-glColor*

void glColor3f(GLfloat red, GLfloat green, GLfloat blue);
void glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);

采用f和d做后缀的函数,以1.0表示最大的使用。
采用b做后缀的函数,以127表示最大的使用。
采用ub做后缀的函数,以255表示最大的使用。
采用s做后缀的函数,以32767表示最大的使用。
采用us做后缀的函数,以65535表示最大的使用。

(3.1)颜色索引模式-总是先设置颜色表,然后选择颜色:glIndex*

说明:glClear(GL_COLOR_BUFFER_BIT);意思是把屏幕上的颜色清空

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值