游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

Qt鼠标触屏绘制平滑曲线,支持矢量非矢量方式

  前言
  Qt通过鼠标或者触屏,实时绘制平滑曲线,通常有两种方式实现:矢量绘图和非矢量绘图,这两种画线方式从实现上有些不同,其原理也不太一样,稍后会做详细介绍。而鼠标或者触屏画线也不大一样,通常如果只实现鼠标画线的话,那么只需要重新实现鼠标事件即可(mousePressEvent、mouseMoveEvent、mouseReleaseEvent),而要在触控屏上画线,如果需要支持多点画线的话,就必须处理QTouchEvent事件才行,但是如果触屏上只支持单点画线,那也可以直接实现鼠标事件,因为第一个触点的事件会同时进入到QTouchEvent和Mouse事件中。QTouchEvent中可以区分出多点时每个触点的id,通过id进行区分每个点的数据。
  通常情况下,为了提升绘图效率,要实现这种绘图的功能,都是用QGraphics体系来完成,因为QGraphics刷新机制和QWidget不太一样,它可以做区域刷新,这样能保证效率更高,特别是针对一些分辨率较高的设备,就很明显了。具体这两个体系间的区别就不在这里进行描述。
  所以,接下来为了演示矢量和非矢量画图方式,我们在QGraphics体系中实现一个简单的画板程序。注重画线效率,保证线条平滑无折线,无锯齿,支持多点画线。效果图
  先来看看非矢量绘图的效果:
  再看矢量绘图效果:
  二者区别
  通过上面的两个图对比,相信大家已经看出了一些区别。我们再详细介绍一下这两者的区别。
  非矢量绘图
  优点:速度快。非矢量绘图原理是直接在一张图片上进行绘制,其渲染速度很快,即便是画了很多线条,也不会有卡顿的效果,擦除时同样很快。
  缺点:缩放失真。由于非矢量绘图是在图片上渲染,当缩放图片时,会导致线条模糊不清晰,如果只是小范围的缩放还能接受,无限缩放的话就会很明显了。二者区别
  通过上面的两个图对比,相信大家已经看出了一些区别。我们再详细介绍一下这两者的区别。
  非矢量绘图
  优点:速度快。非矢量绘图原理是直接在一张图片上进行绘制,其渲染速度很快,即便是画了很多线条,也不会有卡顿的效果,擦除时同样很快。
  缺点:缩放失真。由于非矢量绘图是在图片上渲染,当缩放图片时,会导致线条模糊不清晰,如果只是小范围的缩放还能接受,无限缩放的话就会很明显了。
  矢量绘图
  优点:无限缩放,不失真。矢量绘图是将点数据绘制生成一个单独的对象,当进行缩放的时候,会重新进行渲染,所以矢量绘图的方式不会导致图像失真。
  缺点:线条多时会卡顿,擦除尤其明显。由于矢量绘图是生成一个单独的对象,所以当画线多的情况下,会触发所有有交集的对象进行刷新,擦除的时候,会去计算线条之间的交集并做删减,这个过程会很慢,并且会将整个对象item进行刷新,所以卡顿明显(上述效果图就可以看出来了)。
  通过以上两者的优缺点对比,根据实际需要进行选择实际的画线模式。
  解决实时绘图折线问题
  折线效果:
  可以看到上述画线有很明显的折线,线条不平滑。
  通常绘制这种线条,第一反应想到的是讲两个点直接连接起来行成一条直线,但是,由于两点之间距离比较大,特别是触控屏,点与点之间并不是很密集,因为上层应用在主线程渲染的时候,系统会自动丢弃一些数据点,即便是底层上报的点很多,上层应用接收到的点也会减少,所以不能直接用连接两点的方式来实现。
  那么,该怎么解决呢?
  绘制贝塞尔曲线。
  在move的过程中实时生成贝塞尔曲线path,这样就能保证线条无折线。QPainterPath支持贝塞尔曲线绘制,参加以下函数:voidQPainterPath::quadTo(constQPointFc,constQPointFendPoint)AddsaquadraticBeziercurvebetweenthecurrentpositionandthegivenendPointwiththecontrolpointspecifiedbyc。Afterthecurveisadded,thecurrentpointisupdatedtobeattheendpointofthecurve。
  非矢量绘图实现方式
  所谓的非矢量绘图,就是在一张图片上进行绘制,然后将图片渲染到QGraphicsItem的背景上面,前面我们已经提到,该方式渲染速度非常快,无论画多少线条都不会影响速度,而擦除功能只需要按照同样的方式绘制背景色即可。
  但是该方式在缩放过后图片会有些模糊,如果只是小范围的缩放还好,无限缩放就需要用到矢量绘图的方式了。
  矢量绘图实现方式
  相比之下,矢量绘图就会稍微麻烦一点,所谓矢量绘图,就是将path曲线直接生成一个独立的对象,将该对象添加到scene中,这种模式下会有一个缺陷,就是当画线较多的情况下,刷新会比较慢,因为会导致整条曲线(只要有交集)刷新,从而导致卡顿的效果,并且在擦除时,需要实时计算擦除的path与实际线条path的交集,然后进行计算,减去擦除的path,这个过程是最耗时的,并且也会引发整个item刷新。前面写过文章介绍QGraphics体系的刷新机制
  双缓冲绘图
  上面介绍到,通过非矢量绘图的方式,速度会非常快,那么双缓冲绘图就是要结合非矢量来进行,其原理就是:在press事件中生成一条path,接着move中动态增加这条path,然后在临时层上进行非矢量绘图,这时候绘制的速度会非常快,最后在release事件中将完整的path绘制成矢量图,然后将临时层画线清空。基本原理就是这样。
  双缓冲绘图方式,在绘制过程中是通过非矢量的方式在临时层进行,release后生成完整的矢量path,这种方式速度会非常快,并且直接绘制完整的一条path不会有锯齿。所以这是最佳选择。
  【领QT开发教程学习资料,点击下方链接莬费领取,先码住不迷路】
  点击这里:链接

在家炖肉的3个诀窍好吃又简单1、并不是所有肉类都要焯水很多人习惯将所有的肉类都要焯水,其实,不一定所有的肉类都要焯水。如果你买来的是新鲜、没有冷冻过的肉,并不需要焯水。我们只需要将肉类放在清水……逆光疹到底是什么?我们有三条分析,请您参考逆光疹这一名词近来频繁出现在大众视野,当你的皮肤表面看起来并没有什么炎症,但在侧光或者逆光看皮肤时,会看到细小的疙瘩、疹子,这种情况就被很多人称作是逆光疹;然而,在皮肤科……火锅底料是海底捞好吃,还是桥头,还有其他的吗?说到火锅,比较出名的就是四川跟重庆的火锅了吧,所以在说到火锅底料哪个牌子好吃时,很多人都会先推荐选择这两个地方生产的火锅底料。而如果要具体说出火锅底料哪个牌子好吃的话,那也是有……来自秦昊的深情伊能静若不作,我必不负1987年,9岁的秦昊,买了人生第一张卡带。这张卡带不是别人,正是她日后的妻子伊能静的。27年后,秦昊终于娶到了他梦寐以求的女神。众所周知,伊能静尤其擅长写小……过年拿20万出来囤酒,你们会怎么选择囤什么酒?眼看距离春节越来越近,每家每户都要备上几瓶好酒来招待亲戚朋友。而中国的白酒一共有十二大香型,今天小书童为大家推荐一下酱香型白酒,适合广大老百姓,都是纯粮食酿造,上桌也不掉面子。……智慧城市三维可视化综合管理平台吉优赛维城市数字孪生城市化进程的加快,使交通、人口、环境、消安等方面增加了诸多压力,加之各部门各平台数据信息难以实现融合,阻碍信息共享,导致信息孤岛严重,不能进行相关系统的联动,使日常工作效率难以……2年440万!3队3笔签约消息马刺押宝潜力锋线,绿军签下34由于灰熊等多队加入KD争夺战,今夏休赛期交易市场上的风吹草动,也是重新回到了公众的视野。相比之下,各支球队在自由市场上的抢人大战和军备竞赛,则进入了慢热的节奏,甚至一度陷……穷养儿孙富养爹娘才是当今社会人间正道当今社会物质生活极大丰富,而人们的精神世界却很贫穷,世界观,人生观,价值观三观不正,物欲横流。而我们这些50后60后都已年近七旬,大多上有父母,下有儿孙却要肩负着三代人的……气虚了四君子汤没用?中医5种气虚要分清,教你精准补气首先我们讲究辨证施治,在临床上,气虚分五种,肾气虚、肝气虚、肺气虚、脾气虚、心气虚,要分清楚,才能精准补气。气虚的人,总感觉气短乏力,干什么都提不起精神,总想躺着,不想跟人说话……五颜六色,营养全!时蔬烧虾仁快学起来来源:昆明日报掌上春城虾仁中富含优质的蛋白质,搭配时蔬,补钙同时能很好的补充维生素和膳食纤维,老少皆宜。五彩虾仁所需食材:虾仁200g木耳10朵……用什么肉和其他的食材炖出来的汤最好喝?感谢邀请!第一:常规款:用排骨和黄豆、萝卜、玉米、马蹄、胡萝卜、海带、土豆、莲藕,随便选择一样都可以炖出好喝的汤!这是家常款,大家平常做的几率比较高的,也是材料易选的,好……人不能放太多事在心里人不能放太多事在心里人活着要永远记住人不能放太多事在心里,否则就会活得很累。人活着要永远记住做人不能。把太多事情放在心里。否则就会活得很累。……
日本最高龄的打工人,93岁一周上四次夜班!声称自己喜欢工作之前有一段时间,社会中的996工作制被炒上了风口浪尖。人们认为这样的高压的生活对于员工工作的效率以及未来的身体健康都是不小的隐患,但是整体的环境就是这样,自己不干也会有人想干,……镜像对决!德国vs日本阵型均为431,哈弗茨前田大然突前直播吧11月23日讯世界杯小组赛E组首轮,德国vs日本。国际足联官方显示两队首发阵型图,两队均为4231。德国首发:1诺伊尔、3劳姆、2吕迪格、23施洛特贝克、15聚勒、……俄贤岭景区搭建4A智慧景区票务平台,满足景区多套系统管理需求海南智慧景区票务平台推荐,海南智慧票务管理系统安装费用,海南综合景区票务管理系统推荐,海南智慧票务管理系统多少钱一套,海南智能检票闸机解决方案,海南自助售取票机安装价格,海南智……走近日本的躺平一族,不愿努力,任何人都没有指责的权利近些时间,互联网上流行着所谓的躺平一族,就是对于目前的生活,不愿意再挣扎而选择妥协。即使没有达到别人的期待,也并不会因为外界的评价或者是指责而改变。与其说现在的年轻人是垮掉的一……成年人最大的清醒人不能惯,情不能盼头条创作挑战赛人类一切痛苦的根源,都源于缺乏边界感。作者:洞见yebo《一代宗师》里有句台词:做羹要讲究火候,火候不到,众口难调,火候过了,事情就……NBA一夜9大动态!篮网曾给欧文5年2。5亿勇士揭幕战打湖人北京时间8月14日,过去一夜NBA又有哪些动态?曝篮网曾给欧文5年2。5亿美元顶薪;魔术可能明夏挖角勇士抢走普尔;杰弗森直言詹姆斯将和湖人续约,但不会在湖人结束生涯;布朗尼将打……亲孙和外孙有啥区别?老人对话揭露本质,年轻人都别自欺欺人文文儿很多年轻人不愿承认,对于有儿有女家庭来说,父母多半是偏心的。父母对儿子和女儿不可能一视同仁,等儿女都成家后,有了自己的孩子,父母对孙子和外孙更是不一样。很多老……把谢谢挂在嘴边的人,往往就这三种人有人说,世界上最能引起共鸣的媒介是语言。一句话可以让人的心情坠入深渊,也可以给人重振旗鼓的力量。深以为然。世上的语言五花八门,但最直击人心的语言只有两个字,那……孙颖莎又有比赛啦!国乒2月份迎来新赛事,中国四位顶级球员参加官宣了!2023WTT系列赛第一站落户印度。在2月27日至3月5日进行的果阿站比赛中,将会有男女各6名世界排名前20的选手参赛。中国国乒也已经确定了参赛的名单。男单由樊振东和马……环游土耳其(32)小耶路撒冷世界上还有哪一座城市比耶路撒冷更神圣吗?应该没有。这个犹太人、基督徒和穆斯林的共同圣地,在数千年的光阴里一次次被征服、一次次被拆毁,又一次次被重建。它地面下的每一层泥土似乎都被……ofo小黄车的押金!终于!可以退啦19日最新消息,ofo共享单车的商城App推出拉好友帮退押金功能。活动页面显示,有多种退押金的方式可供用户选择。除了邀请好友,帮你退押金以外,还有好友下单奖励以及10元特惠充值……俄罗斯郑重宣布!人民日报发声,华为很冤枉文科技君俄罗斯郑重宣布!人民日报发声,华为很冤枉!说到斯诺登,相信很多人都不陌生。早年间,斯诺登在美国中情局工作,靠着这层身份,斯诺登接触了很多美国当局不为人知的秘……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网