美文网首页
Canvas画布简单使用

Canvas画布简单使用

作者: 相关函数 | 来源:发表于2017-11-20 21:03 被阅读46次

HTML5的canvas元素可以使用js在网页上绘制图像.canvas本身是没有绘图能力的必须使用在js的内部才能完成.

  • 要使用Canvas画布首先应该使用DOM获取到canvas元素
  • 获取canvas元素的上下问context,传一个参数'2d',目前只支持2d
  • 渲染图像的方法:stroke()可以渲染线条,fill()可以渲染一个区域填充.

绘制线条

var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.moveTo(20,20);
ctx.lineTo(180,20);
ctx.lineTo(180,80);
ctx.strokeStyle = 'blue';
ctx.lineWidth = 6;
ctx.lineJoin='round';//线条连接处的样式
ctx.stroke();

绘制弧线

var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.moveTo(20,20);
ctx.arcTo(70, 20, 100, 100, 70); // 前四个参数分别表示起始点和结束点的坐标,最后一个参数是半径
ctx.strokeStyle = 'blue';
ctx.lineWidth = 6;
ctx.stroke();

绘制圆形

var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
ctx.beginPath();
var centerX = canvas.width/2;
var centerY = canvas.height/2;
var radius = 45;
ctx.arc(centerX,centerY,radius,0,Math.PI*2/3,true);// 第四个参数是开始角度,第五个为结束角度,最后一个是线条走向true为逆时针
ctx.stroke();

绘制矩形

var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.rect(20,20,200,200);
ctx.fillStyle = 'red';
ctx.strokeStyle = 'yellow';
ctx.lineWidth = 5;
ctx.stroke();
ctx.fill();

二次贝瑟尔曲线

var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.moveTo(200,canvas.height/2);
ctx.quadraticCurveTo(200,80,500,200);
ctx.stroke();

三次贝瑟尔曲线

ctx.beginPath();
ctx.moveTo(500,130);
ctx.bezierCurveTo(400,10,588,10,688,170);
ctx.lineWidth = 5;
ctx.strokeStyle = 'blue';
ctx.stroke();

线性渐变

var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
var clg = ctx.createLinearGradient(0,400,400,400);// 前两个是渐变开始的点,后两个为渐变结束的点
clg.addColorStop(0,'red');
clg.addColorStop(0.5,'blue');
clg.addColorStop(1,'green');
ctx.fillStyle = clg;
ctx.fillRect(20,20,400,400);

径向渐变

var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
var crg = ctx.createRadialGradient(325,100,20,325,100,80); // 前三个是渐变开始的点及半径,后两个为渐变结束的点及半径
crg.addColorStop(0,'red');
crg.addColorStop(0.5,'blue');
crg.addColorStop(1,'green');
ctx.fillStyle = crg;
ctx.fillRect(230,10,200,200);

设置阴影

var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.rect(20,20,200,200);
ctx.fillStyle = 'red';
ctx.strokeStyle = 'yellow';
ctx.lineWidth = 10;
ctx.shadowColor = 'peru';
ctx.shadowBlur = 25;
ctx.shadowOffsetX = 20;
ctx.shadowOffsetY = 20;
ctx.stroke();
ctx.fill();

绘制图像

var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
var img = new Image();
img.src = 'QQ20171107-142421.png';
img.onload = function(){
        ctx.drawImage(img,20,20,100,200,20,20,50,40);// 后面四个值代表裁剪图片
}

绘制文字

var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
var x = canvas.width/2;
var y = canvas.height/2;
ctx.font = 'italic 40px Arial';
ctx.strokeStyle='yellow'; // 可以使用fillStyle设置填充颜色
ctx.lineWidth = 2;
ctx.strokeText('Hello World!',x,y);  // 可以使用fillText绘制实心字

测量文字宽高

相关文章

  • Canvas画布简单使用

    HTML5的canvas元素可以使用js在网页上绘制图像.canvas本身是没有绘图能力的必须使用在js的内部才能...

  • Canvas

    1,什么是Canvas 画布的意思,简单理解就是用来作图的区域,实现画图必须需使用js作图 2.Canvas...

  • Canvas

    一、初识canvas canvas画布默认宽高是 300 * 150 px canvas宽高要使用canvas标签...

  • 2020-03-30 canvas画布自适应父div

    使用canvas画图时,我们希望当改变窗口大小,画布随窗口自适应改变画布大小。 我们要注意两个参数:canvas ...

  • 使用 canvas 绘图的几种方法

    canvas 标签 要使用 canvas 绘图,需要现在HTML中定义一个画布。 canvas 元素本身没有绘图能...

  • 自定义View

    Canvas画布的使用 Canvas类相当于一个矩形画布,默认0,0坐标是左上角。用到的坐标都是画布上的(即视图坐...

  • Canvas笔记

    Canvas画布的使用 Canvas类相当于一个矩形画布,默认0,0坐标是左上角。用到的坐标都是画布上的(即视图坐...

  • Canvas的基本用法

    创建canvas标签 首先我们需要有一个画布(Canvas) 渲染上下文 创建画布之后,怎么使用了,需要在java...

  • Canvas中drawImage 绘制的图片 toDataURL

    场景创建了一canvas画布,然后使用 drawImage 在画布上绘制了图片, 最后,想以获取画布的base64...

  • canvas实现圆形进度条动画

    先给大家看看效果图,然后在上代码。 1. canvas的HTML部分很简单就一个canvas标签 canvas画布...

网友评论

      本文标题:Canvas画布简单使用

      本文链接:https://www.haomeiwen.com/subject/wnavvxtx.html