Canvas 平移 translate()
平移 (translate) 就是将一个图形往水平方向和垂直方向移动一定的距离 (dx,dy)
但是,Canvas 中的所有几何变换针对的不是绘制的图形,而是针对画布本身
例如刚开始的时候在 (50,50)
绘制一个 100x50
的矩形可能是这样的
灰色的底为画布(canvas),绿色的边框为屏幕
当我们使用 translate(50,50)
将画布水平和垂直方向各移动 50
然后在 (50,50)
绘制一个 100x50
的矩形就是这样的了
此时矩形的起点距离屏幕左上角就已经是 (100,100)
了
Canvas translate()
ctx.translate()
方法将将 canvas
和 canvas
原点往水平和垂直方向各移动一定的距离
语法
void ctx.translate(dx, dy);
参数 | 说明 |
---|---|
dx | 水平方向的移动距离 |
dy | 垂直方向的移动距离 |
范例
下面的范例先在点 (50,50) 绘制一个橘黄色的 100x50
的矩形,然后平移 canvas (50,50) 最后在点 (50,50) 绘制一个 100x50
的绿色矩形
<!DOCTYPE html> <meta charset="utf-8"> <canvas id="canvas-1" width="400" height="300"> </canvas> <script> var c = document.getElementById("canvas-1"); var ctx = c.getContext("2d"); ctx.fillStyle="orange"; ctx.fillRect(50,50,100,50); ctx.translate(50,50); ctx.fillStyle="green"; ctx.fillRect(50,50,100,50); </script>
运行结果如下