二维绘图实录: 解决绘制百万简单图元,不卡的一种思路

13 篇文章 3 订阅
12 篇文章 2 订阅

背景

我们在绘制大量图元的时候,如果绘制区域瞬间有大量的图元要绘制,比如百万条,千万条图元, 那么如果不做优化的话, 会瞬间导致程序卡死,如何解决呢?先看我解决的结果

示意图展示

以上,我随机绘制了 200万 个随机线条, 然后拖动整个面板, 一点也不卡, 我之后绘制了一千万个线条, 也是不卡的

 

解决办法

1. 实际上,第一图元的存放,要按照金字塔的形式来存储,  放大的时候,展示金字塔底部的那些数据, 缩小的时候,展示金字塔顶部的那些数据. 这样,显示区域就不会同时渲染太多图元

2. 使用双缓存的位图概念, 但是要做好各个坐标系之间的转换以及鼠标相关事件的重写. 我就是耗在了位图区域和虚拟面板上,鼠标点击的点和位图点击的点之间位置的对应,以及DPI的这些计算上

基于以上思路,我去把对局部区域进行三角剖分的那个也做了上去,且看效果图

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值