I have wasted my 2 day for searching my issue on google but didn't get any clue. Actually i have working code for drawing circle,square,line on mouse down and up event on canvas(this drawing is dynamically drawn on canvas).Now i want to zoom in canvas that contain this figure randomly.

When i tried this, i came to know that... there is requirement to redraw the figure after scaling of canvas.Is there any way to to do this in simple way ?

Is there any method in canvas that maintain all information related to drawn figures ?

Can i draw this figures in respective proportion after zoom ?

Please help me...Any clue or any code snippet that help me to work further.
Thankssss you for any help.....

I have following code snippet that contain one curve which called again and again while zoom.But this figure is static so everytime coordinates are same. but in my case figures coordinates changing as figure changing.

```
function draw(scale, translatePos){
                var canvas = document.getElementById("myCanvas");
                var context = canvas.getContext("2d");

                // clear canvas
                context.clearRect(0, 0, canvas.width, canvas.height);

                context.save();
                context.translate(translatePos.x, translatePos.y);
                context.scale(scale, scale);
                context.beginPath(); // begin custom shape
                context.moveTo(-119, -20);

                context.bezierCurveTo(-159, 0, -159, 50, -59, 50);
                context.bezierCurveTo(-89, -95, -139, -80, -119, -20);

        context.closePath(); // complete custom shape
                context.fill();
                context.stroke();
                context.restore();
            }

```