您的位置:首页 > 编程语言 > Qt开发

QT5 OPenGL(二,平面图形上色)

2016-04-06 10:00 363 查看
概要

效果图

主要代码

重点解析

概要

这篇文章是在上一篇的基础上添加的,这样的目的是让学习的人,可以分模块地学习对应的功能,不需要一次性阅读所有的代码。上一篇的博客地址为:


QT5 OPenGL(一)

/article/8043949.html

效果图



主要代码

void OpenglWidget::paintGL()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef( -1.5,  0.0, -6.0 );
glBegin( GL_QUADS );

glColor3f(1.0, 0.0, 0.0);
glVertex3f(  -1.0,  1.0,  0.0 );
glColor3f(0.0, 1.0, 0.0);
glVertex3f(  1.0,  1.0,  0.0 );
glColor3f(0.0, 0.0, 1.0);
glVertex3f(  1.0, -1.0,  0.0 );
glColor3f(1.0, 1.0, 1.0);
glVertex3f( -1.0, -1.0,  0.0 );
glEnd();

glTranslatef(  3.0,  0.0,  0.0 );
glColor3f((GLfloat)0.3, (GLfloat)0.2, (GLfloat)0.5);
glBegin( GL_TRIANGLES );
qDebug() << "this is a paintGL test!";
glVertex3f(  0.0,  1.0,  0.0 );
glVertex3f( -1.0, -1.0,  0.0 );
glVertex3f(  1.0, -1.0,  0.0 );
glEnd();
}


重点解析

我们可以很清楚的看到, 把绘制的图形进行着色的关键是重写paintGL() 函数。

WINGDIAPI void APIENTRY glColor3f (GLfloat red, GLfloat green, GLfloat blue);

而最主要的是调用glColor3f这个函数。 里面有三个函数, 它们的值在0.0 - 1.0 之间, 参数从左到右分别为 红色, 绿色 和 蓝色, 也这就是对应的三原色。 我们可以从三原色混合产生各种不同的色彩。

可以记住最常用的几种色彩参数

红色:glColor3f (1.0, 0.0, 0.0)

绿色:glColor3f (0.0, 1.0, 0.0)

蓝色:glColor3f (0.0, 0.0, 1.0)

黑色:glColor3f (0.0, 0.0, 0.0)

白色:glColor3f (1.0, 1.0, 1.0)

而使用glColor3f 函数, 有一个特点就是,设置为某个色彩之后, 后面的颜色一直为这个色彩, 直到有设置另外的颜色。 而当设置其它颜色之后, 可以理解为从图形的某个点喷出一种色彩, 当多个点有不同的颜色,就会相互交互,形成有多种色彩的图案。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: