Android画布路径实时表现

2023-12-26

我想在 15 分钟内绘制(4 或 5 个)实时图表,可视化大量数据(每 30 毫秒一个新值)。我正在使用 Path,但当我想要显示超过 20000 个值并平移画布时,它似乎工作得非常慢,并且每秒都变得更糟。我也尝试过使用drawLine,但它根本不能流畅工作。

有没有人有比 Path 更好的解决方案?或者也许我做错了什么?我当前的解决方案是:我在开始时初始化路径,然后每次获得新值时向其中添加一个新行,然后翻译画布。


无论您使用什么方式,显示 20 000 个值的路径都可能会很慢,即使在 OpenGL 中,也只是发送大量数据到图形芯片进行绘制......

执行此操作的“正确”方法(性能方面)可能是缓存尽可能多的内容,并仅绘制需要绘制的内容。例如,您可以将前 N 个点绘制到位图,然后仅对接下来的 M 个点使用路径(并为前面的点绘制位图)。绘制位图非常快。因此,您可以偶尔刷新位图(这将花费更多时间),然后绘制剩余的点。

您还可以决定采用更短的路径:您真的需要 20 000 个值吗?您不能将点按 5 × 5 或 10 × 10(甚至更多)分组吗?目前,屏幕宽度最多为 1280 像素……

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android画布路径实时表现 的相关文章

随机推荐

  • 从txt中解析IP地址

    我正在尝试下载一个txt您可以找到的文件here http proxy ip list com download free proxy list txt 下载文件不是问题 testfile urllib URLopener testfile
  • 创建数组的副本并操作原始数组

    首先我要为我糟糕的英语道歉 我会尽力说得清楚 我有一个 3 维数组 只是一个 2 维数组的数组 我的目标是获取其中一个二维数组 并将其逆时针旋转 90 它看起来像这样 1 2 3 4 5 6 7 8 9 我尝试让它像这样 旋转 3 6 9
  • 发生类型错误:超出翻译容量

    当我运行我的示例时 出现以下类型错误 Translation capacity exceeded In this scope universe contains 21 atoms and relations of arity 8 canno
  • 未捕获的 RangeError:超出了最大调用堆栈大小,JavaScript

    我有个问题 open function type Some code document getElementById type addEventListener click l close type false close function
  • 写入开始后无法设置此属性!在 C# WebRequest 对象上

    我想重用 WebRequest 对象 以便保存 cookie 和会话以供以后向服务器请求 下面是我的代码 如果我第二次使用 Post 函数两次 request ContentLength byteArray Length 它会抛出异常 写入
  • 分叉的 IORef 读取器函数似乎会停止主线程

    我正在对并发性和内存可见性进行一些实验 并遇到了这种奇怪的行为 请参阅内联评论 module Main where import Data IORef import Control Concurrent import System CPUT
  • 在 PyQt 中打开第二个窗口

    我正在尝试使用 pyqt 在单击 QMainWindow 上的按钮时显示自定义 QDialog 窗口 我不断收到以下错误 python main py DEBUG Launch edit window Traceback most rece
  • 在 R 中使用 phantomJS 抓取具有动态加载内容的页面

    背景我目前正在使用 rvest 从 R 的一些网站上抓取产品信息 这适用于除一个网站之外的所有网站 其中内容似乎是通过 angularJS 动态加载的 因此无法迭代加载 例如通过 URL 参数 就像我对其他网站所做的那样 具体网址如下 ht
  • Zend Framework - 如何将 url 重写为 seo 友好的 url

    我得到了 Zend Framework 的网站 我在 Zend 中完全是菜鸟 例如我想制作一个网址 somewebsite com test about 看起来像这样 somewebsite com for fun link 我如何在 Ze
  • 无法找到“Firebase”的规范

    我在尝试时无法安装 Firebase pod pod install Analyzing dependencies Unable to find a specification for Firebase 这是我的 Podfile platf
  • 导入 javax.servlet 仍然无法解析[重复]

    这个问题在这里已经有答案了 这是我的 Eclipse 范围的 JRE 定义 清楚地显示已添加 servlet api jar 这里有同样的旧导入错误 似乎永远无法解决 Java不是很棒吗 有人有可能对为什么这仍然不起作用有一个简单 事实的答
  • NestJS EntityMetadataNotFoundError:找不到“存储库”的元数据

    我知道有很多关于这个主题的帖子 我真的很难理解我到底想做什么来解决这个问题 使用 Postman 当我尝试命中路线时 出现以下错误 ERROR ExceptionsHandler No metadata for OrganizationsR
  • 如何从插件中的 PartyList 获取联系人指南?

    我正在制作一个插件 该插件会在自定义活动短信的创建消息上触发 这些插件将使用第三方短信服务提供商发送实际短信 因此 我需要获取短信活动 收件人 字段中每个联系人的手机号码 这是一个类型为 PartyList 的字段 我目前正在使用以下代码
  • 如何将键值对插入 Hive 映射?

    基于以下tutorial https cwiki apache org confluence display Hive Tutorial Hive有map类型 但是 似乎没有记录的方法可以通过SELECT带有一些 UDF 或内置函数 这可能
  • GTK# 和 Windows 窗体有什么区别?

    GTK 和 Windows 窗体有什么区别 他们完全不同吗 Thanks Gtk http mono project com GtkSharp GTK 是 Gtk 工具包的 NET 绑定 该工具包采用 C 语言编写 以提高速度和兼容性 而
  • 空堆区域的开销

    我的工具是 Linux gcc 和 pthreads 当我的程序从多个线程调用 new delete 时 并且存在堆争用时 会创建 arena 请参阅 以下链接以供参考 http www bozemanpass com info linux
  • Python循环查询MySQL - 查询结果未更新?

    我有一小段查询 mySQL 的 python 代码 while True print running SQL query cursor execute select from sites where stage NEW results cu
  • 当JProgressBar达到100%时如何使JDialog不可见?

    相关代码段 JProgressBar progress JButton button JDialog dialog Fields of my GUI class progress new JProgressBar JProgressBar
  • 将向量列表转换为数据框

    我正在尝试将向量列表 本质上是多维数组 转换为数据框 但每次尝试都会得到意想不到的结果 我的目标是实例化一个空白列表 用包含有关该循环迭代的信息的向量将其填充到 for 循环中 然后在完成后将其转换为数据帧 gt vectorList lt
  • Android画布路径实时表现

    我想在 15 分钟内绘制 4 或 5 个 实时图表 可视化大量数据 每 30 毫秒一个新值 我正在使用 Path 但当我想要显示超过 20000 个值并平移画布时 它似乎工作得非常慢 并且每秒都变得更糟 我也尝试过使用drawLine 但它