Canvas从入门到放弃 (二)
在慕课网上学习了 Canvas绘图详解 这门教程,写了这篇canvas教程,想和大家分享学习的过程,希望和大家共同进步.=^_^=
这么久才更教程的第二篇,我该打(;′⌒`)
完整代码请戳Lesson2/demo9.html
效果展示.png
2. 图像的变换和保存 2.1 位移 translate(x,y)完整代码请戳Lesson2/demo1.html
//第一个正方形从(0,0)点开始,x轴平移100像素,y轴平移100像素 context.fillStyle = "#559ABB"; context.translate(100,100); context.fillRect(0, 0, 100, 100); //第二个正方形从(100,100)点开始,x轴平移100像素,y轴平移100像素 context.fillStyle = "#F8D184"; context.translate(100,100); context.fillRect(0, 0, 100, 100);可以看出两个translate的效果是叠加的,为了使用图形变换时效果不影响可保存canvas的状态。
图片.png
Canvas状态的保存和恢复
save(): 保存当前图形的状态
restore(): 返回save的canvas的所有状态
完整代码请戳Lesson2/demo2.html
//保存第一个正方形的状态 //从(0,0)点开始,x轴平移100像素,y轴平移100像素 context.save(); context.fillStyle = "#559ABB"; context.translate(100,100); context.fillRect(0, 0, 100, 100); context.restore(); //保存第二个正方形的状态 //从(0,0)点开始,x轴平移100像素,y轴平移100像素 context.save(); context.fillStyle = "#F8D184"; context.translate(100,100); context.fillRect(0, 0, 100, 100); context.restore();均以(0,0)为起点x,y轴平移100像素,蓝色的正方形被黄色的正方形盖住了
图片.png
2.2 旋转rotate(deg)使用translate,rotate的星空图
完整代码请戳Lesson2/demo3.html
如何绘制星星 可参考 Canvas从入门到放弃 (一)
只有平移和旋转,所有星星都是一样大