Canvas应用小结

Canvas应用小结

canvas 可以画图分为几种基本类型:

线

矩形

图像

文本

颜色样式

canvas的高级的应用就是做动画和游戏,主要是应用以下几个功能:

变形(Rotate,Translate,Scaling,Transforms)

状态保存和恢复(save()restore())

裁切(clip)

动画(requestAnimationFrame,cancelAnimationFrame)

线

  • moveTo(x,y)坐标点移动到x,y。
  • lineTo(x, y)
    绘制一条从当前位置到指定x以及y位置的直线。

  • arc(x, y, radius, startAngle, endAngle, anticlockwise)
    画一个以(x,y)为圆心的以radius为半径的圆弧(圆),从startAngle开始到endAngle结束,按照anticlockwise给定的方向(默认为顺时针)来生成。

  • arcTo(x1, y1, x2, y2, radius)
    根据给定的控制点和半径画一段圆弧,再以直线连接两个控制点。

矩形

  • fillRect(x, y, width, height)
    绘制一个填充的矩形
  • strokeRect(x, y, width, height)
    绘制一个矩形的边框
  • clearRect(x, y, width, height)
    清除指定矩形区域,让清除部分完全透明。

图像

在画布上定位图像:

  • drawImage(img,x,y);

  • drawImage(img,x,y,width,height);在画布上定位图像,并规定图像的宽度和高度

  • drawImage(img,sx,sy,swidth,sheight,x,y,width,height);剪切图像,并在画布上定位被剪切的部分
    sx —->开始剪切的 x 坐标位置。
    sy —->开始剪切的 y 坐标位置。
    swidth —->被剪切图像的宽度。
    sheight —->被剪切图像的高度。

文本

  • fillText(text, x, y [, maxWidth])
    在指定的(x,y)位置填充指定的文本,绘制的最大宽度是可选的.
  • strokeText(text, x, y [, maxWidth])
    在指定的(x,y)位置绘制文本边框,绘制的最大宽度是可选的.

  • font = value
    当前我们用来绘制文本的样式. 这个字符串使用和 CSS font 属性相同的语法. 默认的字体是 10px sans-serif。

  • textAlign = value
    文本对齐选项. 可选的值包括:start, end, left, right or center. 默认值是 start。
  • textBaseline = value
    基线对齐选项. 可选的值包括:top, hanging, middle, alphabetic, ideographic, bottom。默认值是 alphabetic。
  • direction = value
    文本方向。可能的值包括:ltr, rtl, inherit。默认值是 inherit。

颜色样式

  • fillStyle = color
    设置图形的填充颜色。
  • strokeStyle = color
    设置图形轮廓的颜色。

变形

  • translate(x, y)
    x 是左右偏移量,y 是上下偏移量。
  • rotate(deg)
    deg是角度
  • scale(x, y) x是横轴缩放因子,y是纵轴
  • transform(m11, m12, m21, m22, dx, dy)矩阵参数

状态保存和恢复

  • save
    保存当前绘画的状态,使之进入一个堆栈
  • restore
    从堆栈中退出一个状态,显示出来

裁切

  • clip
    创建一个新的裁切路径,例如:
  ctx.beginPath();
  ctx.arc(0,0,20,0,Math.PI*2,true);
  ctx.clip();
  创建一个半径为20px,原点为0,0的裁切圆。

动画

  • requestAnimationFrame(callback)
    告诉浏览器你希望执行一个动画,并在重绘之前,请求浏览器执行一个特定的函数来更新动画。

    采用 window.requestAnimationFrame()实现动画效果。这个方法提供了更加平缓并更加有效的方式来执行动画,因为它只在系统准备好重绘时,才调用绘制动画帧。一般每秒钟回调函数执行60次,也有可能会被降低。

  • canceltAnimationFrame(name)
    name是动画名。用来中止动画。

猜你喜欢

转载自blog.csdn.net/qq_24073885/article/details/71081112