я знаю, что в Интернете есть какая-то информация об этом, но по какой-то причине я не могу разобраться с этим, или слишком стар, и, возможно, есть более эффективный способ.
ПРОБЛЕМА.
Я хочу перевести свой холст в точку, где я щелкнул, чтобы увеличить.Так.Масштабирование и панорамирование.
То, что у меня есть.
const newCanvasTranslation = {
x: currCanvas.x + point.x * zoomMargin,
y: currCanvas.y + point.y * zoomMargin, };
Если объектное полотно представляет мой холст, точка указывает точку мыши (e.offsetX), по которой я щелкнул, чтобы увеличить илиout и zoomMargin разница масштабирования, которую я хочу представить (от 100% до 90%, zooMargin будет 0,1)
Затем я рисую с setTransform
.
Проблема, с которой я столкнулся, заключается в том, что эти вычислениянакапливать какие-то ошибки, поэтому иногда я получаю очень неожиданное поведение.
Буду очень признателен за любую помощь.Большое спасибо