新文章 网摘 文章 随笔 日记

Canvas 平移 translate()

文章转自:Canvas 平移 translate() - Canvas 基础教程 - 简单教程,简单编程 (twle.cn)

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>

运行结果如下

 

 

 

 

posted @ 2023-01-07 09:29  岭南春  阅读(609)  评论(0)    收藏  举报