【问题标题】:Java2D faster Area alternativeJava2D 更快的区域替代
【发布时间】:2020-08-14 10:55:51
【问题描述】:

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

到目前为止,它工作得很好,但我对区域的表现感到沮丧。特别是,我有三件事要完成:

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

天真地,第 1 点和第 2 点可以通过 Area.addArea.subtract 完成。 这很有效,但在一般用例中可能需要长达 20 分钟。

第 3 点可以通过将面积相减并检查剩余面积来完成。仍然很慢,但可以通过使用一些先前的空间散列或类似的东西来加速可用。

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

不幸的是,像 JOGL 或 LWJGL 这样的库不能在像 svg-paths 或 Java2D Paths 这样的独立于分辨率的空间上工作。

【问题讨论】:

    标签: java svg java-2d


    【解决方案1】:

    你可以试试这个:AreaX

    根据作者:

    AreaX 类旨在实现与 Area 类完全相同的视觉效果。然而,为了更快地达到这些结果,我们已经仔细实施了一些可能的优化。

    【讨论】:

    • 经过一些测试,我得出的结论是,这个AreaX 通常比默认的Area 慢,但是subtract 操作似乎快了几个数量级,这很有帮助
    猜你喜欢
    • 1970-01-01
    • 2012-11-10
    • 2016-10-25
    • 1970-01-01
    • 2018-12-11
    • 2012-07-05
    • 2012-01-23
    • 2019-08-19
    • 2013-07-13
    相关资源
    最近更新 更多