Canvas luôn thay đổi tỷ lệ từ nguồn gốc hiện tại của nó. Nguồn gốc mặc định là [0,0]. Nếu bạn muốn mở rộng quy mô từ một điểm khác, trước tiên bạn có thể thực hiện ctx.translate (mong muốnX, mong muốnY);. Thao tác này sẽ đặt lại nguồn gốc của canvas thành [mong muốnX, mong muốnY].
Phương thức translate () ánh xạ lại vị trí (0,0) trên canvas. Phương thức scale () chia tỷ lệ bản vẽ hiện tại, lớn hơn hoặc nhỏ hơn. Nếu bạn muốn dịch () ngữ cảnh canvas theo phần bù của mình, trước tiên bạn cần phải mở rộng () nó để phóng to hoặc thu nhỏ, sau đó dịch () ngược lại theo chiều ngược lại với phần bù chuột.
Các bước này được đưa ra trong ví dụ sau
ctx.translate(pt.x,pt.y); ctx.scale(factor,factor); ctx.translate(-pt.x,-pt.y);