Java2D更快的区域替代方法

问题描述 投票:1回答:1

我将Java2D与apache蜡染结合使用以绘制一些相当大的svg图像。

到目前为止,它运行良好,但是我对区域的性能感到沮丧。特别是,我要完成三件事:

  1. 将一堆碰撞形状合并到一个大区域中
  2. 从一个较大的区域删除一堆形状
  3. 检查碰撞形状

天真地,点1和2可以用Area.addArea.subtract完成。这可行,但是在一个平均用例中很容易花费多达20分钟。

点3可以通过相互减去面积并检查剩余面积来实现。仍然很慢,但是可以通过使用某些先前的空间哈希或类似方法加快使用。

是否有更好,更快的方法来合并/减去Java2D区域?如果没有,是否还有另一个库可以更快地完成这种事情?

不幸的是,像JOGL或LWJGL之类的库无法在与分辨率无关的空间(如svg-paths或Java2D Paths)上工作。

java svg java-2d
1个回答
0
投票

您可以尝试以下方法:AreaX

根据作者:

AreaX类旨在获得与Area类完全相同的视觉效果。但是,已经仔细实施了几种可能的优化,以更快地获得这些结果。

© www.soinside.com 2019 - 2024. All rights reserved.