Canvas是HTML5的一个新特性,canvas又叫作画板。顾名思义,咱们能够在canvas上绘制咱们须要的图形。最开始,canvas它是由苹果公司提出的,当时不叫canvas,叫widget,由于HTML并不存在一套二维的绘图API。Canvas自己是一个HTML元素,须要HTML元素的配合高度和宽度属性而定义出的一块可绘制区域,定义区域以后使用JavaScript的脚本绘制图像的HTML元素。canvas
它能够基本的绘制图形,进一步的制做照片,绘制动画,更进一步能够处理和渲染视频。(应用场景)浏览器
canvas有两个属性,一个是宽度(width),一个是高度(height)。宽度和高度能够使用内联的属性,以下所示:动画
<canvas width="300px" height="150px" id="canvas"> 您的浏览器不支持Canvas <img src="./backup.jpg" alt=""> </canvas>
const canvas = document.getElementById('canvas'); /* 得到 2d 上下文对象 */ const ctx = canvas.getContext('2d');
原生绘制APIspa
原生绘图API有三个:code
clearRect(x, y, widh, height) 清空视频
ctx.fillRect(0, 0, 50, 50); ctx.strokeRect(50, 50, 100, 100); ctx.clearRect(10, 10, 30, 30);
绘制线段 - Path对象
ctx.beginPath(); ctx.moveTo(0, 0); ctx.lineTo(300, 150); ctx.closePath(); ctx.stroke();
绘制三角形 - Pathblog
ctx.beginPath(); ctx.moveTo(0, 0); ctx.lineTo(300, 0); ctx.lineTo(150, 150); ctx.closePath(); ctx.fill();
绘制圆/圆弧- Path图片
arc(x, y, radius, startAngle, endAngle, anticlockwise)ip
ctx.beginPath(); ctx.moveTo(0, 0); ctx.arc(150, 75, 50, 0, Math.PI / 2, false); ctx.stroke();
arcTo(x1, y1, x2, y2, radius)
ctx.beginPath(); ctx.moveTo(0, 0); ctx.arcTo(100, 100, 400, 100, 400); ctx.stroke();
贝塞尔曲线 - Path
cubic-bezier(n1,n2,n3,n4)
p0(0,0)
p1(1,1)
p2(n1,n2)
p3(n3,n4)
ctx.beginPath(); ctx.bezierCurveTo(0, 123, 100, -9, 100, 100); ctx.stroke();