数据可视化基础 - canvas进阶篇(二):变换

92 阅读1分钟

内容整理承接:

《数据可视化基础 - 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 公式进行计算。

  • ctx.save() 保存当前环境的状态

    • 可以把当前绘制环境进行保存到缓存中。
  • ctx.restore() 返回之前保存过的路径状态和属性

    • 获取最近缓存的ctx
  • 一般配合位移画布使用。