【canvas】变换丶位移画布丶 旋转丶环境保存和还原丶透明度丶 缩放(重点)
## 3.3 变换(重点)
### 3.3.1 缩放(重点)
+ scale() 方法缩放当前绘图,更大或更小
+ 语法:context.scale(scalewidth,scaleheight)
* scalewidth : 缩放当前绘图的宽度 (1=100%, 0.5=50%, 2=200%, 依次类推)
* scaleheight : 缩放当前绘图的高度 (1=100%, 0.5=50%, 2=200%, etc.)
+注意:缩放的是整个画布,缩放后,继续绘制的图形会被放大或缩小。
### 3.3.2 位移画布(重点)
+ ctx.translate(x,y) 方法重新映射画布上的 (0,0) 位置
+ 参数说明:
* x: 添加到水平坐标(x)上的值
* y: 添加到垂直坐标(y)上的值
+ 发生位移后,相当于把画布的0,0坐标 更换到新的x,y的位置,所有绘制的新元素都被影响。
+ 位移画布一般配合缩放和旋转等。
### 3.3.3 旋转(重点)
+ context.rotate(angle); 方法旋转当前的绘图
+ 注意参数是弧度(PI)
+ 如需将角度转换为弧度,请使用 degrees*Math.PI/180 公式进行计算。
## 3.3 绘制环境保存和还原(重要)
+ ctx.save() 保存当前环境的状态
* 可以把当前绘制环境进行保存到缓存中。
+ ctx.restore() 返回之前保存过的路径状态和属性
* 获取最近缓存的ctx
+ 一般配合位移画布使用。
## 3.4 设置绘制环境的透明度(了解)
+ context.globalAlpha=number;
+ number:透明值。必须介于 0.0(完全透明) 与 1.0(不透明) 之间。
+ 设置透明度是全局的透明度的样式。注意是全局的。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<canvas width="600" height="400" >
</canvas>
</body>
<script type="text/javascript">
var canvas=document.querySelector("canvas");
canvas.style.border="solid 1px #000";
var c=canvas.getContext('2d');
c.fillStyle="rgb(255,0,0)";
c.fillRect(10,10,100,100);
c.save();//保存当前环境的状态
c.translate(100,100);//方法重新映射画布上的 (100,100) 位置
//发生位移后,相当于把画布的0,0坐标 更换到新的x,y的位置,所有绘制的新元素都被影响。
//位移画布一般配合缩放和旋转等。
c.globalAlpha=0.3;
//透明值。必须介于 0.0(完全透明) 与 1.0(不透明) 之间,注意参数是弧度(PI),
// 如需将角度转换为弧度,请使用 degrees*Math.PI/180 公式进行计算.
c.scale(2,2);//方法缩放当前绘图,更大或更小
c.rotate(25*Math.PI/180);// 方法旋转当前的绘图
c.moveTo(0,0);
c.lineTo(500,0);
c.moveTo(0,0);
c.lineTo(0,300);
c.stroke();
c.fillRect(10,10,100,100);
c.restore();//返回之前保存过的路径状态和属性
c.fillRect(200,200,100,100);
</script>
</html>
代码结果:


浙公网安备 33010602011771号