搜索
bottom↓
回复: 14

请教下 QT 画上千个 多边形的 效率问题,

[复制链接]

出0入0汤圆

发表于 2019-2-15 10:50:13 | 显示全部楼层 |阅读模式
本帖最后由 孤独的猫 于 2019-2-15 12:50 编辑

咨询下大佬,用QT在一个固定大小方框里画N(几千,到几万个,矢量地图)个多边形。 部分多边形的坐标位置,已经超出了BMP大小,等于不显示。
1 :可以直接画,QT自己会处理,不知道QT怎么处理。
2 :  我自己判断,那些多边形不需要画,那些多边形只画部分。

请教大佬,1方法和2方法,那个的速度更快呀?

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出10入18汤圆

发表于 2019-2-15 11:27:44 来自手机 | 显示全部楼层
好奇你要干啥

出0入0汤圆

发表于 2019-2-15 12:41:37 | 显示全部楼层
类似网页那种粒子特效?

出0入0汤圆

 楼主| 发表于 2019-2-15 12:46:53 | 显示全部楼层

画矢量地图呀,矢量地图,就是很多边形组成的。

出0入0汤圆

 楼主| 发表于 2019-2-15 12:47:13 | 显示全部楼层
huangqi412 发表于 2019-2-15 12:41
类似网页那种粒子特效?

不是的,是矢量地图的多边形。

出0入0汤圆

发表于 2019-2-15 13:13:51 | 显示全部楼层
当然是用QT更方便了,否则需要剪切画图,还需要4叉树优化。QT都为你做好了。
QT里有个Example就是n多个小图片显示在一个QtGraphicView里,专门就是干这个的。里面有个scene和view的概念。scene可以很大,而view就是你实际显示的窗口,超出view边框的内容都看不见,移动内容,view就更新显示

出0入442汤圆

发表于 2019-2-15 13:39:26 来自手机 | 显示全部楼层
nanfang2000 发表于 2019-2-15 13:13
当然是用QT更方便了,否则需要剪切画图,还需要4叉树优化。QT都为你做好了。
QT里有个Example就是n多个小图 ...

效率效率。目前qt画图可能以opengl为主,但是整体给我的感受是,qt相当卡。

出0入0汤圆

发表于 2019-2-15 15:05:48 | 显示全部楼层
wye11083 发表于 2019-2-15 13:39
效率效率。目前qt画图可能以opengl为主,但是整体给我的感受是,qt相当卡。 ...

qt看是什么画, qtquick才是opengl。我觉得效率还可以,开intel集显的硬件加速画10w个点的散点图都是秒画。

出0入0汤圆

发表于 2019-2-15 15:25:15 | 显示全部楼层
flamma 发表于 2019-2-15 15:05
qt看是什么画, qtquick才是opengl。我觉得效率还可以,开intel集显的硬件加速画10w个点的散点图都是秒画 ...

widget 如果用 sgh 或者 qgriphicsview 的话 是可以以用opengl做后端的

出0入0汤圆

 楼主| 发表于 2019-2-15 15:53:20 | 显示全部楼层
本帖最后由 孤独的猫 于 2019-2-15 16:19 编辑
nanfang2000 发表于 2019-2-15 13:13
当然是用QT更方便了,否则需要剪切画图,还需要4叉树优化。QT都为你做好了。
QT里有个Example就是n多个小图 ...


嗯嗯,我得到是 很多多边形的坐标数据,比如有1万个多边形, 但当前显示只要其中的100个。
我是先判断,找出需要的100个,然后去绘制显示,还是直接把1000个全画了,让QT 自己去显示,效果更高呢?
现在用的是QT Quick  画图是用 QQuickPaintedItem   实现的。qt quick 好像也是类似QtGraphicView这样的?
  至于 4叉树优化 的完全不懂了就。

出0入0汤圆

 楼主| 发表于 2019-2-15 15:54:24 | 显示全部楼层
flamma 发表于 2019-2-15 15:05
qt看是什么画, qtquick才是opengl。我觉得效率还可以,开intel集显的硬件加速画10w个点的散点图都是秒画 ...

现在用的就是qtquick ,但不知道怎么它是调用GPU的,画多边形,也是GPU完成的?

出0入0汤圆

发表于 2019-2-15 16:41:53 | 显示全部楼层
孤独的猫 发表于 2019-2-15 15:54
现在用的就是qtquick ,但不知道怎么它是调用GPU的,画多边形,也是GPU完成的? ...

它是调用opengl接口的,这个可以是软实现的,也可以是显卡GPU实现的。比如QQuickWindow::setSceneGraphBackend可以指定用什么。

出0入0汤圆

发表于 2019-2-15 16:58:27 | 显示全部楼层
不要想自己实现了除非是大公司。这里头涉及的知识和工作量还是蛮大的。QT实现一万个三角形应该是没问题的,不行的话你按楼上的方法用opengl后端。

还有一个库,比QT简单,nanovg,纯opengl实现矢量图,效率非常高
https://github.com/memononen/nanovg

出0入0汤圆

 楼主| 发表于 2019-2-15 17:16:20 | 显示全部楼层
flamma 发表于 2019-2-15 16:41
它是调用opengl接口的,这个可以是软实现的,也可以是显卡GPU实现的。比如QQuickWindow::setSceneGraphBa ...

好的,谢谢了,我研究研究下。

出0入0汤圆

 楼主| 发表于 2019-2-15 17:16:55 | 显示全部楼层
nanfang2000 发表于 2019-2-15 16:58
不要想自己实现了除非是大公司。这里头涉及的知识和工作量还是蛮大的。QT实现一万个三角形应该是没问题的, ...

好的,我看下,谢谢了!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-27 10:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表