0

我正在尝试制作一个小应用程序来绘制一个带有 svg 图形的花园,我可以在其中拖动和平移。这是一个演示: http: //pmtesting1.meteor.com/(单击拖动并滚动缩放)演示显示了一个包含大约 1400 个节点的大 svg 元素。

也许有更好的解决方案?或者一些提示会很好!

唯一的事情是:植物应该是 svg 图像。

感谢您的帮助和提示!

我尝试过:将每株植物放入一个 svg 并分组,这有点帮助,但仍然滞后。我尝试制作许多 svg 元素,但这是一场灾难。

4

1 回答 1

0

您应该只加载/绘制当前在视图中的元素,因此将被渲染。如果你设法只通过那些元素,你可以(理论上)拥有无限的元素..

如果您真的想深入进行性能调优,我建议使用四叉树,但这对于简单的应用程序来说可能有点过分。

也许这个链接:多少堆叠的画布元素太多有助于获得画布性能的总体概述。

编辑:你怎么能这样做:

  • 列出元素,包括它们的位置。比较每个位置,当它在屏幕上时,显示它,否则隐藏它。这将是缓慢的变体。
  • 您还可以将一堆彼此靠近的元素打包成一个块,然后只比较这些块。这会快很多(比较,而不是渲染)
  • 使用四叉树/bintree 并执行平截头体剔除。这需要在 javascript 中进行大量工作,但可能是最快的解决方案。

我很确定有 api 可以为你做最多的工作。

于 2013-08-12T09:35:28.303 回答