• 5497阅读
  • 2回复

[提问]如何实现带覆盖叠加效果的QPainter绘制效果? [复制链接]

上一主题 下一主题
离线roywillow
 

只看楼主 倒序阅读 楼主  发表于: 2012-06-09
目前我想实现一个小的绘图程序,有一个比较难办的地方就是半透明的QPen绘制出来的曲线,在自身相交的位置不能实现透明度的叠加
就像下图红圈全出来的地方

我目前的做法是,按下鼠标,开始记录鼠标移动过的点,每次移动鼠标就把当前的点加入到一个list中,松开鼠标后对这些已经记录的点进行连线(使用QPainter::drawPolyline())
而这么做的缺点就是,当这条折线自身有相交的时候,我期望相交点的颜色会叠加一次,颜色本应该更深,但实际上QPainter只是将这个区域一次性只绘制一遍,就像上图的效果
那么,各位有什么好的方法来实现这种画笔叠加的效果呢?
先谢过了!
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线jdwx

只看该作者 1楼 发表于: 2012-06-09
回 楼主(roywillow) 的帖子
哦,还有这样的问题。
除非自己drawline,别用那些现成的多边形。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线roywillow

只看该作者 2楼 发表于: 2012-06-09
回 1楼(jdwx) 的帖子
不知道那些绘图软件上的各种画笔的效果是怎么实现的呢?如果实现了这个透明画笔,那么其他各种效果的画笔也就不难了。你知道有没有什么用Qt实现的这方面的软件吗?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个