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

概要

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

QT5 OPenGL(一)
http://blog.youkuaiyun.com/li235456789/article/details/51069461


效果图

这里写图片描述


主要代码

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 函数, 有一个特点就是,设置为某个色彩之后, 后面的颜色一直为这个色彩, 直到有设置另外的颜色。 而当设置其它颜色之后, 可以理解为从图形的某个点喷出一种色彩, 当多个点有不同的颜色,就会相互交互,形成有多种色彩的图案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小K小Q

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值