美文网首页
在canvas中save()和restore()方法的区别

在canvas中save()和restore()方法的区别

作者: tenro | 来源:发表于2021-01-14 16:17 被阅读0次
var c=document.getElementById("canvas");
var ctx=c.getContext("2d");


ctx.fillStyle="red";
ctx.fillRect(0,0,75,50);
// '---------------------以基点( 0, 0 )绘制一个红色矩形'

ctx.save()
//'----------------------移动前先保存之前的操作'

ctx.translate(50, 50);  //基点从(0, 0) 手动改成( 50, 50)
ctx.rotate(Math.PI/3);//摆正五角星 
ctx.fillStyle="yellow";
ctx.fillRect(0,0,85,60);
// '---------------------这里我们不使用restore时,下面我继续绘制一个黄色的矩形'

ctx.fillStyle="blue";
ctx.fillRect(0,0,75,50);
// '---------------------上面这个蓝色的矩形就是以(50, 50)为基点,填充色是上面的绘制的'
ctx.restore()  


ctx.fillStyle="green";
ctx.fillRect(0,0,55,90);

//'这里我们不使用restore时,下面我继续绘制一个矩形'
// '---------------------使用restore()重置所有属性,下面的操作就能恢复到(0, 0)为基点'

⚠️: 在canvas中有很多的属性在你绘制完一个图块的时候,再去绘制另一个图块的时候,上一次某些使用过的属性就会影响你此次绘图的操作,这时你直接restore就相当恢复了默认了设置了

相关文章

网友评论

      本文标题:在canvas中save()和restore()方法的区别

      本文链接:https://www.haomeiwen.com/subject/hbevaktx.html