使用画布或WebGL以高FPS平移和缩放许多SVG图像

时间:2017-05-30 13:31:59

标签: javascript d3.js canvas svg webgl

我的应用程序需要在屏幕上绘制成百上千的图像,以及一些原始形状,如圆形和连接它们的线条。我的应用程序主要关注的是,我能够快速平移和缩放,并且在高FPS下没有滞后 - 与谷歌地图类似应用程序的类似体验。

因为我希望我的图像在缩放时看起来很清晰,所以我使用SVG创建了我的图标,因此在缩放后它们不会像素化。

我当前的实现使用d3和DOM来显示所有内容。它工作正常,但随着DOM节点数量的增加,FPS下降,缩放变得滞后。

根据我的理解,我的选项是使用更好的渲染器,如canvas或WebGL。我的问题是这些渲染器不支持svg缩放,所以即使我用ctx.drawImage()绘制我的图像,在缩放后它看起来很糟糕。

我试着看一些像PIXI.js,three.js这样的库,但似乎没有提供这种功能。

如何在缩放后保留图标清晰度的同时使用现代渲染器?

0 个答案:

没有答案