html5 canvas元素使用(一)

html5新增了一个canvas元素,用于在网页上生成一块矩形区域,用于绘制图像,功能非常强大,下面我来简单介绍一下

在页面中添加canvas

1 <canvas id="canvasDemo">您的浏览器暂不支持canvas</canvas>

如上图所示,如果不给canvas设置宽高,默认宽是300px,高是150px。同时,canvas默认是透明的

我们可以给它设置宽高,边框,甚至背景颜色。

注意,这边设置的宽高是画布的属性,和style的是不一样的

1 <canvas id="canvasDemo" width="600px" height="400px" style="border:3px solid white">您的浏览器暂不支持canvas</canvas>

canvas的使用

要想使用canvas,必须先渲染上下文,创建context对象,并获取2D运行环境

1 var context = document.getElementById("canvasDemo"); //var context = document.getElementsByTagName("canvas");这样是无效的
2 var ctx = context.getContext("2d");

然后就可以开始画图了

画图之前我们要先了解下是画图是根据什么定位的,答案是坐标,而且这个这边我们平时了解的是上下翻转的,不过到和网页css定位差不多

如果刚开始画图确定坐标不习惯的可以自己写个方法转换成正常的(x,canvasHeight-y)

canvas画线

这边画线也没什么好讲的,网上都有

1 var context = document.getElementById("canvasDemo");
2 var ctx = context.getContext("2d");
3
4 ctx.moveTo(0,0);                //线条起点坐标
5 ctx.lineTo(20,20);               //线条终点坐标
6 ctx.lineWidth = 4;              //设置线条宽度
7 ctx.strokeStyle = "white";   //设置线条绘制颜色
8 ctx.stroke();

这边要注意的是设置线条属性值一定要在stroke之前,好比你自己拿笔画画,你肯定是先挑选画笔吧,总不能画完了(stroke)之后在挑笔吧...

这边线条还有一个属性比较有意思就是lineCap,设置了线条的格式,有三个值:butt,round,square;看下面就知道效果了

一个是正常的,一个是两端添加圆形线帽,一个是两端添加方形线帽

还可以连续画折现

2 ctx.moveTo(200,100);
3 ctx.lineTo(400,100);
4 ctx.lineTo(100,300);
5 ctx.lineWidth = 30;
6 ctx.lineCap = "butt";
7 ctx.strokeStyle = "white";
8 ctx.stroke();

这时候有个lineJoin属性,可以控制线段连接处的线条风格,值有bevel,round,miter

当值为miter时,会多一个属性miterLimit(定义最大斜接长度)多数为角度比较小的时候才会有这种情况

看miterLimit = 5时,斜接长度大于5,

只能按照bevel展示,这时候加大miterLimit的值就能恢复正常

这个连接的属性还是有用的,有的时候画复杂的图形,连接的不好会很丑。

canvas画矩形

矩形的绘画还是比较简单的

有三种画法

1、一种是用线条构建,使用closePath()闭合折线图形

 1     ctx.moveTo(200,100);
 2     ctx.lineTo(400,100);
 3     ctx.lineTo(400,200);
 4     ctx.lineTo(200,200);
 5     ctx.closePath();
 6     ctx.lineWidth = 10;
 7     ctx.lineCap = "butt";
 8     ctx.lineJoin = "miter";
 9     ctx.miterLimit =4;
10     ctx.strokeStyle = "white";
11     ctx.stroke();

先画边框再填充颜色

1 ctx.fillStyle = "lightBlue";
2 ctx.fill();

看到没,这边有意思的是线框被占了是不是。

2、第二种相当于分离进化版

1     ctx.strokeStyle = "white";
2     ctx.lineWidth = 4;
3     ctx.strokeRect(200,100,200,100)  //strokeRect(x,y,width,height)
4     ctx.fillStyle="lightBlue";
5     ctx.fill();

红色代码就没用了

3、第三种直接填充画矩形,再画边框,当然你也可以不画

1     ctx.fillStyle="lightBlue";
2     ctx.fillRect(200,100,200,100);
3     ctx.strokeStyle="white";
4     ctx.strokeRect(200,100,200,100);  //strokeRect(x,y,width,height)

canvas画圆

先来一个表达式吧

ctx.arc(x ,y,r,sAngle,eAngle,counterclockwise);     注意是arc不是src....

x,y  分别圆心的坐标;r为半径;sAngle为起始角;eAngle为结束角;counterclockwise规定逆时针还是顺时针,默认true为顺时针

1 ctx.lineWidth = 5;
2 ctx.strokeStyle = "white";
3 ctx.arc(300,200,50,0,1.5*Math.PI);
4 ctx.stroke();

可以填充颜色

1 ctx.lineWidth = 5;
2 ctx.strokeStyle = "white";
3 ctx.arc(300,200,50,0,1.5*Math.PI);
4 ctx.stroke();
5 ctx.fillStyle = "lightBlue";
6 ctx.fill();

来个例子,画个中国太极

 1         ctx.beginPath();
 2         ctx.arc(300, 200, 150, 0.5 * Math.PI, 1.5 * Math.PI);
 3         ctx.fillStyle = "white";
 4         ctx.fill();
 5         ctx.beginPath();
 6         ctx.arc(300, 200, 150, 1.5 * Math.PI, 0.5 * Math.PI);
 7         ctx.fillStyle = "black";
 8         ctx.fill();
 9         ctx.beginPath();
10         ctx.arc(300, 125, 75, 0.5 * Math.PI, 1.5 * Math.PI);
11         ctx.fillStyle = "black";
12         ctx.fill();
13         ctx.beginPath();
14         ctx.arc(300, 275, 75, 1.5 * Math.PI, 0.5 * Math.PI);
15         ctx.fillStyle = "white";
16         ctx.fill();
17
18         ctx.beginPath();
19         ctx.arc(300, 275, 20, 0, 2 * Math.PI);
20         ctx.fillStyle = "black";
21         ctx.fill();
22         ctx.beginPath();
23         ctx.arc(300, 125, 20, 0, 2 * Math.PI);
24         ctx.fillStyle = "white";
25         ctx.fill();        
时间: 2024-12-21 05:48:13

html5 canvas元素使用(一)的相关文章

HTML5 &lt;canvas&gt; 元素用于图形的绘制,通过脚本(通常是javascript)完成

<canvas> 标签只是图形容器,您必须使用脚本来绘制图形 可以通过多种方法使用canvas绘制路径\盒\圆以及添加图像 创建一个画布(Canvas) 一个画布在网页中是一个矩形框,通过 <canvas> 元素来绘制. 注意: 默认情况下 <canvas> 元素没有边框和内容. <canvas>简单实例如下: <canvas id="myCanvas" width="200" height="100&

使用HTML5 -Canvas追踪用户,Chrome隐身模式阵亡

中国的一些精准营销公司又要偷着乐了= =从之前追踪Cookie到后面追踪FlashCookie,某些商家总在永无止境的追踪用户行为甚至是隐私,将其转化为所谓的“商业价值”.我们被迫面临“世风日下.道德沦亡”之窘境,不过笔者后来又释怀了,反正在中国上网本来就没有隐私嘛.毕竟国家机器还在合法工作呢...... 话说回来,HTML5-Canvas追踪用户的核心原理其实就是一句话:在绘制canvas图片时,同样的canvas绘制代码,不同机器和浏览器绘制的图片特征是相同并且独一无二的,这样以来,提取最简

基于HTML5 Canvas实现的图片马赛克模糊特效

效果请点击下面网址: http://hovertree.com/texiao/html5/1.htm 一.开门见山受美国肖像画家Chuck Close的启发,此脚本通过使用HTML5 canvas元素把图像转换成像素形式,这基本上是一个为canvas imageData功能的简单演示. 此脚本现存于GitHub上,您可以在那里下载到脚本和示例.在GitHub上查看像素化资源 二.选项此方法接受一个对象数组,每个对象都拥有一组选项.resolution : 渲染像素间的像素距离,必须的.shape

HTML5 新元素、HTML5 Canvas

HTML5 新元素 自1999年以后HTML 4.01 已经改变了很多,今天,在HTML 4.01中的几个已经被废弃,这些元素在HTML5中已经被删除或重新定义. 为了更好地处理今天的互联网应用,HTML5添加了很多新元素及功能,比如: 图形的绘制,多媒体内容,更好的页面结构,更好的形式 处理,和几个api拖放元素,定位,包括网页 应用程序缓存,存储,网络工作者,等. <canvas> 新元素 标签 描述 <canvas> 标签定义图形,比如图表和其他图像.该标签基于 JavaSc

HTML5 程序设计 - 使用HTML5 Canvas API

请你跟着本篇示例代码实现每个示例,30分钟后,你会高喊:“HTML5 Canvas?!在哥面前,那都不是事儿!” 呵呵.不要被滚动条吓到,很多都是代码和图片.我没有分开写,不过上面给大家提供了目录,方便查看. 学习笔记,纯手工码字,有错别字什么的请指出,觉得好的请点个赞小小的支持下.谢谢亲们. 本篇,我们将探索如何使用HTML5和Canvas API.Canvas API很酷,可以通过它来动态生成和展示图形.图表.图像以及动画. 本篇将使用渲染API(Rendering API)的基本功能来创建

使用HTML5 Canvas API

一.检测浏览器支持情况 HTML5 Canvas的确是一个好东西,但是并不是所有浏览器都支持HTML5 Canvas的,这就要求我们在使用HTML5 Canvas前要检查浏览器是否支持这玩意儿. 在创建HTML5 canvas元素之前,首先要确保浏览器能够支持它.如果不支持,你就要为那些古董级浏览器提供一些替代文字.下面的代码就是检测浏览器支持情况的一种方法. 1 try { 2 document.createElement("canvas").getContext("2d&

HTML5: HTML5 Canvas

ylbtech-HTML5: HTML5 Canvas 1.返回顶部 1. HTML5 Canvas <canvas> 标签定义图形,比如图表和其他图像,您必须使用脚本来绘制图形. 在画布上(Canvas)画一个红色矩形,渐变矩形,彩色矩形,和一些彩色的文字. 什么是 canvas? HTML5 <canvas> 元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成. <canvas> 标签只是图形容器,您必须使用脚本来绘制图形. 你可以通过多种方法使用

HTML5读书笔记——canvas元素

html5相对于html,增加了一些新的元素,比如canvas,audio,image等. canvas元素为脚本提供了像素级的画布,可以试试渲染图形.游戏画面或其他虚拟图像.canvas元素可绘制直线.圆.矩阵等基本形状,以及图像和基本文字.目前,各大浏览器都已开始支持GPU加速的2D canvas渲染,因此使用canvas辉指出的游戏动画运行速度会很快. 首先,在<body>中加入<canvas>标签,如下: 其中,body中的onload事件调用函数,可以确保函数运行前,页面

HTML5 画布canvas元素

HTML5 画布canvas元素 HTML5的canvas元素以及随其而来的编程接口Canvas API应用前景极为广泛.简单地说,canvas元素能够在网页中创建一块矩形区域,这块矩形区域可以成为画布,这其中可以绘制各种图形.可别小看了这个画布,它能实现无限的可能性.接下来我们从最简单的部分开始,逐步认识Canvas的强大功能. 1.在页面中添加canvas元素: 默认情况下,Canvas所创建的矩形区域大小为宽300像素,高150像素,不过我们可以使用width和height属性来自定义画布