Qt学习之路(26):反走样[VC/C++编程]
本文“Qt学习之路(26):反走样[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
本日持续前面的内容.既然已经进入2D画图部份,那么就先持续研究一下有关QPainter的东西吧!
反走样是图形学中的重要概念,用以避免“锯齿”现象的呈现.很多系统的画图API里面城市内置了反走样的算法,不过默许普通都是关闭的,Qt也不例外.下面我们来看看代码.这段代码仅仅给出了paintEvent函数,相信你可以很轻松地替换掉前面章节中的相关代码.
void PaintedWidget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.setPen(QPen(Qt::black, 5, Qt::DashDotLine, Qt::RoundCap));
painter.setBrush(Qt::yellow);
painter.drawEllipse(50, 150, 200, 150);
painter.setRenderHint(QPainter::Antialiasing, true);
painter.setPen(QPen(Qt::black, 5, Qt::DashDotLine, Qt::RoundCap));
painter.setBrush(Qt::yellow);
painter.drawEllipse(300, 150, 200, 150);
}
看看运行后的效果:
左边的是没有利用反走样技术的,右边是利用了反走样技术的.二者的差别可以很简单的看出来.
下面来看看相关的代码.为了尝试画笔的款式,这里成心利用了一个新的画笔:
painter.setPen(QPen(Qt::black, 5, Qt::DashDotLine, Qt::RoundCap));
我们对比着API去看,第一个参数是画笔颜色,这里设置为黑色;第二个参数是画笔的粗细,这里是5px;第三个是画笔款式,我们利用了 DashDotLine,恰好像其名字所示,是一个短线和一个点相间的范例;第四个是RoundCap,也就是圆形笔帽.然后我们利用一个黄色的画刷填充,画了一个椭圆.
背面的一个和前面的非常类似,唯一的辨别是多了一句
painter.setRenderHint(QPainter::Antialiasing, true);
以上是“Qt学习之路(26):反走样[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |