2

我正在画布上构建一个应用程序,它由一个简单的 DOM 组成,每次鼠标移动都会重绘(是的,这是必要的),对于性能问题,并不是每个部分都只重绘需要的部分。

该应用程序运行良好,但我想添加缩放功能,我看到它的方式,它可以通过三种不同的方式完成:

1 - 每次用户放大或缩小时,每个 DOM 元素都会重新计算(位置和大小) - 它可能存在精度问题并且它不是一个很好的抽象

2 - 画布具有分辨率属性(即,当用户缩小分辨率时,分辨率可能从 1 变为 .75) - 每次重绘时都需要进行计算

3 - 使用内置的 translate() 和 scale() 方法 - 可能是最优雅和最快的解决方案,但是它根本不直观,可能很难理解我或其他人稍后是如何完成的(这些方法适用于整个画布,首先您将在画布上进行翻译和缩放,然后您绘制的所有内容都会“神奇地”翻译和缩放)

哪一个是最好的,或者还有其他我没有想到的可能性?

4

1 回答 1

1

我会使用内置的 translate()/scale() 方法。如果您担心任何这些方法的性能和质量,您应该尝试以一种可以将其换成其他选项进行比较的方式进行操作,如果结果最终让您担心的话。

于 2009-02-26T13:22:57.957 回答