Как мне перевести область просмотра холста при масштабировании?
Мой метод масштабирования:
mouseZoom(opt) { let canvas = this.canvasRender; let delta = opt.e.deltaY; let zoom = canvas.getZoom(); zoom = zoom + delta / 200; if (zoom > 10 || zoom < 0.2) { return; } if (zoom > 20) zoom = 20; if (zoom < 0.001) zoom = 0.01; canvas.zoomToPoint({x: opt.e.offsetX, y: opt.e.offsetY}, zoom); opt.e.preventDefault(); opt.e.stopPropagation(); }
Взгляните на свойство canvas.viewportTransform.
canvas.viewportTransform
Содержит все преобразования области просмотра, хранящиеся в виде массива [a, b, c, d, tx, ty], где:
[a, b, c, d, tx, ty]
a -– x масштаб
b - y перекос
c - x scew
d - y шкала
tx - x перевод
ty - y перевод