以任一点 A 缩放的基本原理:
A 点为鼠标位置,正常放大是以原点放大,那么放大后 A 点就会变到 A1 点的位置 x1, y1。然后再将画布进行位移,将 A1 的位置移动到 A,则完成以 A 点缩放的功能。
代码示例:
this.scale 是当前缩放比例,this.offsetX, this.offsetY 是当前原点位移距离,step 是每次缩放的增量
if (wheelDelta > 0) { // 放大 if (this.scale < max) { // 缩放值小于设定的最大值,则可以继