Я прочитал каждый SO-ответ, который смог найти, но не могу найти простого решения JavaScript для этой проблемы. Мой вопрос такой же, как вопрос в этом посте , но этот вопрос основан на библиотеке, и я использую vanilla JS.
В основном я могу использовать:
ctx.setTransform(1 ,0 ,0, 1, 0, 0)
ctx.translate(x, y)
ctx.scale(factor, factor)
ctx.translate(-x, -y)
Но если изображение частично увеличено, и я перемещаю мышь, то продолжаю масштабирование, изображение скачет.
Мне нужно рассчитать смещение, если я увеличен, но я в тупике. Как я могу частично увеличить масштаб, переместить мышь и плавно перемещаться вокруг новой позиции?