html canvas 阅读,HTML5 canvas的使用

HTML5标签用于绘制图像,但是元素本身并没有绘制能力,它仅仅是图形的容器,必须要使用脚本来完成实际的绘图任务(JavaScript)

1.创建一个画布(canvas)

注意标签需要制定一个id属性,方便脚本引用,width和height属性定义画布的大小,使用style属性来添加边框。如下:

您的浏览器不支持 HTML5 canvas 标签。

74883c606688

创建一个画布

2.使用JavaScript来绘制图像

canvas元素本身是没有绘图能力的,所有的绘制工作必须在JavaScript内部完成。

首先,找到 元素:

var c=document.getElementById("myCanvas");

然后,创建 context 对象:

var ctx=c.getContext("2d");

getContext("2d") 对象是内建的 HTML5 对象,拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。

下面的两行代码绘制一个红色的矩形:

ctx.fillStyle="#FF0000";

ctx.fillRect(0,0,150,75);

设置fillStyle属性可以是CSS颜色,渐变,或图案。fillStyle 默认设置是#000000(黑色)。就是填充了整个矩形。

fillRect(x,y,width,height) 方法定义了矩形当前的填充方式。个人理解的话是绘制矩形的方位,大小。超过了HTML中canvas定义的长宽范围,就不显示

完整代码:

您的浏览器不支持 HTML5 canvas 标签。

var c=document.getElementById("myCanvas");

var cctx=c.getContext("2d");

ctx.fillStyle="#FF0000";

ctx.fillRect(0,0,150,75);

74883c606688

js绘制

常用的操作:

1.canvas渐变

以下有两种不同的方式来设置Canvas渐变:(x为渐变开始点的x坐标,y为渐变开始点的y坐标,x1为渐变结束点的x坐标,y1为渐变结束点的y坐标,r为渐变开始点的圆半径,x为渐变结束点的圆半径)

createLinearGradient(x,y,x1,y1) - 创建线条渐变

createRadialGradient(x,y,r,x1,y1,r1) - 创建一个径向/圆渐变

当我们使用渐变对象,必须使用两种或两种以上的停止颜色。

addColorStop()方法指定颜色停止,addColorStop(stop,color); stop值为0.0到1.0之间,表示渐变中开始于结束之间的位置,color是在stop位置显示的CSS颜色值。

·线条渐变

您的浏览器不支持 HTML5 canvas 标签。

var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");

var grd=ctx.createLinearGradient(0,0,170,0);

grd.addColorStop(0,"black");

grd.addColorStop(0.5,"red");

grd.addColorStop(1,"white");

ctx.fillStyle=grd;

ctx.fillRect(20,20,150,100);

74883c606688

常见操作---线条渐变

·圆形渐变

您的浏览器不支持 HTML5 canvas 标签。

var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");

// Create gradient

var grd=ctx.createRadialGradient(75,50,5,90,60,100);

grd.addColorStop(0,"red");

grd.addColorStop(1,"white");

// Fill with gradient

ctx.fillStyle=grd;

ctx.fillRect(10,10,150,80);

74883c606688

常见操作---圆形渐变

2.canvas文本

font - 定义字体ctx.font="30px Arial"; 高度和字体风格

fillText(text,x,y) - 在 canvas 上绘制实心的文本

strokeText(text,x,y) - 在 canvas 上绘制空心的文本

应用:

您的浏览器不支持 HTML5 canvas 标签

var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");

ctx.font="30px Verdana";

// 创建渐变

var gradient=ctx.createLinearGradient(0,0,c.width,0);

gradient.addColorStop("0","magenta");

gradient.addColorStop("0.5","blue");

gradient.addColorStop("1.0","red");

// 渐变填充

ctx.strokeStyle=gradient;

ctx.strokeText("Big smile!",10,50);

74883c606688

常见操作---文本渐变

3.canvas-路径

moveTo(x,y) 定义线条开始坐标

lineTo(x,y) 定义线条结束坐标

最后使用stroke()方法来绘制线条。

代码:

您的浏览器不支持 HTML5 canvas 标签。

var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");

ctx.moveTo(0,0);

ctx.lineTo(200,100);

ctx.stroke();

74883c606688

canvas路径

4.圆形

arc(x,y,r,start,stop)

然后使用stroke()空心圆,fill()实心圆。

您的浏览器不支持 HTML5 canvas 标签。

var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");

ctx.beginPath();

ctx.arc(95,50,40,0,2*Math.PI);

ctx.fill();

74883c606688

圆形

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值