我正在画布上构建一个应用程序,它由一个简单的DOM组成,每次鼠标移动时都会重新绘制(是的,这是必要的),对于性能问题,不是每个部件都只重新绘制所需的东西。 / p>
该应用程序运行良好,但我想添加缩放功能,我看到它的方式,它可以通过三种不同的方式完成:
1 - 每次用户放大或缩小时,每个DOM元素都会被重新计算(位置和大小) - 它可能存在精度问题而且不是很好的抽象
2 - 画布具有分辨率属性(即当用户缩小分辨率时可能会从1更改为.75) - 需要在每次重绘时进行计算
3 - 使用内置的translate()和scale()方法 - 可能是最优雅和最快速的解决方案,但它根本不直观,可能很难理解我是如何做到的别人(这些方法在完整的画布上工作,首先你会在画布上翻译和缩放,然后你绘制的所有东西都被'魔术'翻译和缩放)
哪一个最好还是有其他可能性我没想到?
答案 0 :(得分:1)
我会使用builtin translate()/ scale()方法。如果您担心这些方法的性能和质量,您应该尝试以可以将其换成另一个要比较的选项的方式进行,如果结果最终给您任何关注。< / p>