Scale from the center point
<!DOCTYPE html> <html> <head> <style> #canvas { /*from w ww . j a v a 2 s . co m*/ border:1px solid #03F; background:#CFC; } </style> </head> <body> <canvas id="canvas" width="640" height="480"></canvas> <script> let context = document.getElementById('canvas').getContext('2d'); //now draw a red square context.setTransform(1,0,0,1,0,0); let x = 100; let y = 100; let width = 50; let height = 50; context.translate(x+.5*width, y+.5*height); context.scale(2,2); context.fillStyle = "red"; context.fillRect(-.5*width,-.5*height , width, height); </script> </body> </html>