Possible Duplicate:
Zoom in on a point (using scale and translate)
I want to implement zooming on the mouse pointer with the mouse wheel. That is scaling the image while the point under the mouse pointer stays fixed.
Here is my code, which doesn't work very well
var scala = 1 + event.wheelDelta / 1000;
canvas.context.translate(-canvas.mouse.x * ( scala - 1 ) / canvas.scale,-canvas.mouse.y * ( scala - 1 ) / canvas.scale);
canvas.context.scale(scala,scala);
canvas.scale *= scala;
//canvas.scale is my variable that is initially set to 1.
//canvas.mouse is my variable that represents the mouse position relative to the canvas
Without looking at anything else, you'll need 2 translates: one before to move the mouse point to (0,0), and one after to move (0,0) (now with the zoomed picture) to where the mouse was.
Solved it and the answer is here: same question
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With