【发布时间】:2020-08-14 10:55:51
【问题描述】:
我将 Java2D 与 apache batik 结合使用来绘制一些相当大的 svg 图像。
到目前为止,它工作得很好,但我对区域的表现感到沮丧。特别是,我有三件事要完成:
- 将一堆碰撞的形状合并到一个大区域
- 从一个大区域中删除一堆形状
- 检查碰撞形状
天真地,第 1 点和第 2 点可以通过 Area.add 和 Area.subtract 完成。
这很有效,但在一般用例中可能需要长达 20 分钟。
第 3 点可以通过将面积相减并检查剩余面积来完成。仍然很慢,但可以通过使用一些先前的空间散列或类似的东西来加速可用。
有没有更好更快的方法来合并/减去 Java2D 区域? 如果没有,是否有另一个库可以更快地完成这种事情?
不幸的是,像 JOGL 或 LWJGL 这样的库不能在像 svg-paths 或 Java2D Paths 这样的独立于分辨率的空间上工作。
【问题讨论】: