在iOS上有效地绘制带有很多点的图表

乔纳斯·G

我正在寻找一种在iOS上有效绘制具有很多点(最多10000个)的折线图的方法。该图将获取实时数据,并且需要每秒更新多次。我正在尝试找出一种有效绘制图形的方法,这样它就不会在绘制时浪费CPU并阻塞主线程。

我目前正在UIBezierPath后台线程中为折线图创建一个,添加所有点并将其绘制在CALayer(已启用异步绘制)中。速度不是很快,会占用大量CPU,绘制速度太慢,UI会变得迟钝。我正在绘制实时数据,从理论上讲,我可以UIBezierPath每次都重复使用相同的数据,只是追加新点,但是过一会儿旧值将被丢弃,这意味着已删除值的点必须从贝塞尔曲线路径中删除,这是不可能的。

在iOS上有效地绘制大型数据集方面,我还没有发现任何东西,但我希望有一些使用GPU来提高性能的方法。

乔纳斯·G

我终于找到了使用OpenGL绘制图形的实现:https : //github.com/syedhali/EZAudio/blob/master/EZAudio/EZAudioPlotGL.m

实际上,这非常简单,并且性能提升很大。

对于使用A7芯片(或更新的)的设备,用金属绘制图形可能会更快,这也应该很容易。有关此操作的一些指南:https : //www.raywenderlich.com/77488/ios-8-metal-tutorial-swift-getting-started

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

一页上有多个Google图表-要有效地加载库?

来自分类Dev

一页上有多个Google图表-要有效地加载库?

来自分类Dev

有效地绘制星图

来自分类Dev

在行的子集上有效地设置值

来自分类Dev

DirectX9-有效地绘制精灵

来自分类Dev

有效地围绕 QPainterPath 绘制文本

来自分类Dev

在Word 2016中如何有效地绘制带有厚边的网格(例如5 x 5)?

来自分类Dev

有可能在vim上有效地进行android开发吗?

来自分类Dev

有效地列出目录中包含很多条目的文件

来自分类Dev

如何在Unity中有效地对很多RGB颜色进行排序

来自分类Dev

如何在Unity中有效地对很多RGB颜色进行排序

来自分类Dev

使用groupby在大型数据帧上有效地进行Fillna(正向填充)?

来自分类Dev

如何在ViewPager上有效地添加多个图像

来自分类Dev

如何在移动浏览器上有效地模糊视频?

来自分类Dev

在移动窗口numpy数组上有效地应用函数

来自分类Dev

Python:在pandas GroupBy对象上有效地应用

来自分类Dev

在熊猫数据框中的多行上有效地找到形状

来自分类Dev

在字节表示形式的整数序列上有效地递增

来自分类Dev

如何在Mac OS X上有效地键入《》和〈〉?

来自分类Dev

如何在小型SSD上有效地管理空间

来自分类Dev

无法使用Active Directory用户在Sonatype Nexus上有效地应用角色

来自分类Dev

在移动窗口numpy数组上有效地应用函数

来自分类Dev

在子字符串上有效地合并表,而不是完美匹配

来自分类Dev

如何在 Ubuntu 上有效地使用 timeshift?

来自分类Dev

如何在android上有效地发布github上的项目

来自分类Dev

有效地选择互斥对

来自分类Dev

有效地等待资源

来自分类Dev

有效地分割琴弦

来自分类Dev

有效地检测碰撞

Related 相关文章

热门标签

归档