【canvas使用】

canvas的本质

1、 标签只是图形容器,相当于一个画布,canvas 元素本身是没有绘图能力的。
2、所有的绘制工作必须在 js内部完成,相当于使用画笔在画布上画画。

使用

  • 必须指定宽高,用到getcontext()方法
<canvas id="charts" width="800" height="400">canvas>
  • context 是一个封装了很多绘图功能的对象(html5里新增的),我们在页面中创建一个 canvas 标签之后,首先要使用 getContext() 获取 canvas (用原生js获取元素),目前 getContext() 的参数只有 2d,暂时还不支持 3d

分类

1、js获取元素

const canvas = document.getElementById('charts');
const context = canvas.getContext('2d');

2、

绘制线段

  • moveTo(x, y):把路径移动到画布中的指定点,不创建线条
  • lineTo(x, y):添加一个新点,然后在画布中创建从该点到最后指定点的线条
context.strokeStyle = 'yellowgreen';
context.moveTo(0, 0);
context.lineTo(100, 100);
context.stroke();

绘制矩形

fillRect(x, y, width, height) 绘制填充颜色的矩形

  • strokeRect(x, y, width, height) 绘制线条的矩形
context.fillStyle = "pink";
context.strokeStyle = "darkred";
context.fillRect(0, 0, 100, 100);
context.strokeRect(120, 0, 100, 100);

绘制圆形

  • arc(x, y, radius, starAngle, endAngle, anticlockwise)
    • x : 圆心的 x 坐标
    • y:圆心的 y 坐标
    • radius : 半径
    • starAngle :开始角度
    • endAngle:结束角度
    • anticlockwise :是否逆时针(true)为逆时针,(false)为顺时针
context.beginPath();
context.arc(300, 350, 100, 0, Math.PI * 2, true);
//不关闭路径路径会一直保留下去
context.closePath();
context.fillStyle = 'rgba(0,255,0,0.25)';
context.fill(); 
// 或
// context.stroke(); // 此时就会有问题

清除路径

清除绘画的路径,多个图形就不会连接在一起

context.beginPath()
context.closePath()

清除矩形区域

当在一个画布反复绘制图形,需要将上一次的图形清空

  • clearRect(x, y, width, height)

绘制文字

  • fillText(text, x, y, maxWidth)

案例:绘制一个柱状图

一个少女心满满的例子带你入门 Canvas

你可能感兴趣的:(javascript,前端,html)