时间:2010-07-26 16:45:36

标签: java clojure

2 个答案:

答案 0 :(得分:5)

不幸的是,通用图形解决方案可能不会很好地扩展到200万点 - 这足够大,如果你想要交互式性能,你需要专门的东西。

我可以看到一些明智的选择:

  • 编写您自己的自定义“绘图仪”功能,该功能针对绘制大量点进行了优化。您必须对其进行测试,但我认为您可以通过在紧密循环中使用setRGB将点直接写入BufferedImage来获得所需的性能。如果仍然不够快,可以将点直接写入字节数组并构造MemoryImageSource。

  • 排除积分,以便您只是例如最多10,000点。只要您只关心散点图的整体形状而不是单个点,这可能是完全可以接受的。

  • 将所有点预渲染到例如然后,大型BufferedImage允许用户放大和缩小/与此静态图像交互。您可以“破解”JFreeChart来执行此操作。

  • 如果OpenGL是一个选项(需要本机代码+陡峭的学习曲线!),然后将所有点放在一个大的顶点阵列中并让显卡为你完成所有操作。将毫不费力地实时处理200万点。

答案 1 :(得分:1)

MathGL是快速免费的(GPL)绘图库。但是我从不测试它的java接口(基于swig)因为我不熟悉java :(。所以,如果有人可以帮助测试那么我会很感激。