java - 在 Android 上创建交互式等高线图

标签 java android plot

我有强度二维数组形式的数据,应该绘制在等高线图中。最后它应该看起来像一个带有等高线的地形图,如下图所示: alt text

这个想法是典型的多点触控手势(捏合缩放,拖动移动)可用于导航等高线图。数据的最大大小应该在 4k*4k 点左右,每个 4 字节大。

有没有我可以使用的绘图库,还是我必须从头开始?是否有一个易于实现的算法?

最佳答案

我不知道有任何适用于 Android(或 Java)的绘图库,但我对一般绘图了解一两件事:

创建轮廓的简单算法是 Marching Squares 。 Marching squares 根据您的数据数组创建多边形。这种算法在 Java 中应该有很多示例(尝试 Google Code Search ,但在使用前请阅读许可证)。

如果你想放大得更远,你可能想从这些多边形创建贝塞尔曲线来平滑它们,可以找到一个示例算法(代码应该很容易移植到 Java)here .

注意:如果您想用颜色填充轮廓,您应该考虑使用 fragment 着色器而不是创建多边形。将数据作为纹理发送到着色器,并使用强度为每个像素分配颜色。为此,您应该了解一些 OpenGL。

关于java - 在 Android 上创建交互式等高线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4668231/

相关文章:

java - 使用 ConnectionPoolDataSource 连接

Java 扩展替代方案

java - 将异常的堆栈跟踪转换为 byte[] 数组或 ByteBuffer (Java) 是否更有效?

java - 程序只循环一次但应该循环T次

android - Genymotion 中的黑屏

java - 对数组列表进行排序

java - 有什么方法可以修复这个 : Expected name at line 45 column 7 path $. client[0].services

r - 使用 R 重新创建 Igor 中制作的等高线图

plot - Julia 与原子的现场情节

python - 使用 matplotlib 在图像文件上绘制半透明轮廓图