本章小结
在本章中,我们讨论了在浏览器中绘制图形的技术,重点关注了<canvas>
元素。
一个canvas
节点代表了我们的程序可以绘制在文档中的一片区域。这个绘图动作是通过一个由getContext
方法创建的绘图上下文对象完成的。
2D 绘图接口允许我们填充或者拉伸各种各样的图形。这个上下文的fillStyle
属性决定了图形的填充方式。strokeStyle
和lineWidth
属性用来控制线条的绘制方式。
矩形与文字可以通过使用一个简单的方法调用来绘制。采用fillRect
和strokeRect
方法绘制矩形,同时采用fillText
和strokeText
方法绘制文字。要创建一个自定义的图形,我们必须首先建立一个路径。
调用beginPath
会创建一个新的路径。很多其他的方法可以向当前的路径添加线条和曲线。比如,lineTo
方法可以添加一条直线。当一条路径画完时,它可以被fill
方法填充或者被stroke
方法勾勒轮廓。
从一张图片或者另一个画布上移动像素到我们的画布上可以用drawImage
方法实现。默认情况下,这个方法绘制了整个原图像,但是通过给它更多的参数,你可以拷贝一张图片的某一个特定的区域。我们在游戏中使用了这项技术,从包括许多动作的图像中拷贝出游戏角色的单个独立动作。
图形变换允许你向多个方向绘制图片。2D 绘制上下文拥有一个当前的可以通过translate
、scale
与rotate
进行变换。这些会影响所有的后续的绘制操作。一个变换的状态可以通过save
方法来保存,通过restore
方法来恢复。
在一个画布上展示动画时,clearRect
方法可以用来在重绘之前清除画布的某一部分。