我正在尝试绘制一个接近 2000 个点的实时图表,一次绘制一个点。这适用于 JAR(achartengine,android plot)和 OPENGL,但绘图非常慢。请建议增加绘图速度。
2 回答
解决您要使用的平台
这个速度问题可能会影响两端。
库(你称之为jar)方法最初绘制会更快,因为我假设它们在画布上绘制。我们使用这种方法在我们的应用程序上绘制一些复杂的图表。这种方式简单直接。图表大多是静态的,具有一些交互功能。
OpenGL 方法最初需要更长的时间来渲染,因为它需要先加载 GLView 并启动 OpenGL,然后才能绘制图表,这有时会很耗时,但一旦加载,执行绘制操作会更快,并且比 jar 方法花哨的功能。
最后归结为你想做什么。如果您只想绘制图表并使用最新数据更新它,我不会使用 OpenGL,但如果您想添加很酷的缩放功能和平移等,您绝对可以使用 OpenGL 来执行这些操作。
您受到图书馆的限制
关于库的事情是您只能改进实现它们的方式,例如检查不必要的 for 循环,确保您没有在图表等上调用任何不必要的方法。(如果不显示一些代码,就不能真正帮助您改进)
我们没有准备好依赖一段只会定期更新的源代码,因为这可能会导致错误在您的系统中停留很长时间。所以我们编写了自己的图表类。这真的很简单,如果您的图表仅用于绘制 x 和 y 轴上的最新点,这是一种更好、更轻量级的方法,您可以完全控制。当然,这比使用现有的库要多得多,但最终你可以控制。
希望这能给你一些关于看什么的想法
你是什么意思"slow"
?帧率低?您想达到哪个比率?
如果你真的想要更高的渲染速度,你只有一个严肃的选择:在 OpenGL 中编程。