Canvas绘图 (html5新增特性)

  • Canvas

使用<canvas>对象,需要设置属性:width,height。指定绘图的区域大小。在canvas标签前后出现的信息将在不支持<canvas>元素的浏览器中显示出来。如下:

<canvas id="drawing" width="400" height="400">a drawing of something</canvas>

要在这块画布上绘图,需要取得绘图上下文。取得绘图上下文对象的引用需要调用getContext()方法并传入上下文的名字。传入“2d” 取得2D上下文对象。

1 <canvas id="drawing" width="400" height="400">a drawing of something</canvas>
2 <script type="text/javascript">
3     var drawing=document.getElementById("drawing");
4     if(drawing.getContext){     //检测获取绘图上下文对象的方法是否存在
5         var context=drawing.getContext("2d");
6
7     }
8 </script>

要导出<canvas>元素上绘制的图像,可使用toDataURL()方法。参数为图像的类型格式

 1 <canvas id="drawing" width="400" height="400">a drawing of something</canvas>
 2 <script type="text/javascript">
 3     var drawing=document.getElementById("drawing");
 4     if(drawing.getContext){
 5         var imgURL=drawing.toDataURL("image/png");
 6         var image=document.createElement("img");
 7         image.src=imgURL;
 8         document.body.appendChild(image);
 9
10     }
11 </script>
  •  2D上下文

坐标开始于<canvas>元素的左上角,绘制简单的2D图形。

操作大多分为描边和填充两个操作,属性为:fillStyle(填充),strokeStyle(描边).

  • 绘制矩形(相关的方法:fillRect(),strokeRect(),clearRect() 清除画布上的矩形区域)
 1 <canvas id="drawing" width="400" height="400">a drawing of something</canvas>
 2 <script type="text/javascript">
 3     var drawing=document.getElementById("drawing");
 4     if(drawing.getContext){
 5         /*var imgURL=drawing.toDataURL("image/png");
 6         var image=document.createElement("img");
 7         image.src=imgURL;
 8         document.body.appendChild(image);*/
 9         var context=drawing.getContext("2d");
10         context.fillStyle="red";
11         context.fillRect(10,10,50,50);
12         context.fillStyle="rgba(0,0,255,0.5)";
13         context.fillRect(30,30,50,50);
14
15
16     }
17 </script>
  • 画布上绘制路径:首先调用beginPath()方法,表示要开始绘制新路径,然后调用方法: arc(),arcTo(),lineTo(),moveTo(),quadraticCurveTo(),rect(),             最后创建路径后选择:closePath()方法,fill(),stroke()。

绘制时钟:

 1 <canvas id="drawing" width="400" height="400">a drawing of something</canvas>
 2 <script type="text/javascript">
 3     var drawing=document.getElementById("drawing");
 4     if(drawing.getContext){
 5         var context=drawing.getContext("2d");
 6         context.beginPath();
 7         //绘制外圆
 8         context.arc(100,100,99,0,2*Math.PI,false);
 9         //绘制内圆
10         context.moveTo(194,100);
11         context.arc(100,100,94,0,2*Math.PI,false);
12         //绘制分针
13         context.moveTo(100,100);
14         context.lineTo(100,15);
15         //绘制时针
16         context.moveTo(100,100);
17         context.lineTo(35,100);
18         //描边
19         context.stroke();
20     }
21 </script>
  • 绘制文本:fillText()和strokeText()   四个参数:要绘制的文本字符,x坐标,y坐标,可选最大像素宽度。 属性:font(文本样式,大小,字体),textAlign(文本对齐方式),textBaseline(文本的基线).
1         context.font="bold 14px Arial";
2         context.textAlign="center";
3         context.textBaseline="middle";
4         context.fillText("12",100,20);

变换:rotate()围绕圆点旋转角度,scale()缩放一定比例,translate()平移,transform,setTransform。

  • 绘制图像:把图像绘制到画布上,drawImage()方法。
1         var img=document.images[0];
2         context.drawImage(img,100,100);
  • 阴影

shadowColor:阴影颜色。

shadowOffsetX:形状或路径x轴方向的阴影偏移量。

shadowOffsetX:形状或路径y轴方向的阴影偏移量。

shadowBlur:模糊像素数。

这些属性通过context对象来修改。在绘制之前设置完成,能自动产生阴影。

原文地址:https://www.cnblogs.com/alaner/p/9525291.html

时间: 2024-08-30 16:20:02

Canvas绘图 (html5新增特性)的相关文章

HTML5新增特性

1.新增的语义化标记元素 header 标记头部区域的内容(用于整个页面或页面中的一块区域). footer 标记脚部区域的内容(用于整个页面或页面中的一块区域). section 是web页面中的一块区域. article 独立的文章内容. aside 相关内容或者引文. nav 导航类辅助内容. 2.新增的功能元素 hgroup元素,用于整个页面或页面中的一个内容区块的标题进行组合. figure元素,表示一段独立的流内容,一般表示文档主体流内容中的一个独立单元.figcation元素可为f

CSS3和HTML5新增特性及使用(保留方便查看)

CSS3 1.边框图片 border-image: url(test.png) 10/10px;  outline:10px solid #ff0;outline-offset:15px;边框的边框,两边框之间距离 2.三角形   span{display:inline-block;border:50px solid transparent;border-top-color:red;border-left-color:red;} 3.背景大小  background-size:50%/100px

15. javacript高级程序设计-Canvas绘图

1. Canvas绘图 HTML5的<canvas>元素提供了一组JavaScript API,让我们可以动态的创建图形和图像.图形是在一个特定的上下文中创建的,而上下文对象目前有两种. 第一种是2D上下文,可以执行原始的绘图操作, l 设置填充.描边颜色和模式 l 绘制矩形 l 绘制路径 l 绘制文本 l 创建渐变和模式 第二种是3D上下文,即WebGL上下文. l 使用GLSL编写的顶点和片段着色器 l 支持类型化数组,即能够将数组中的数据限定为某种特定的数值类型 l 创建和操作纹理 主流

HTML5新特性新增功能

HTML5 现如今已经不是SGML的子集,主要是关于图像,位置,存储,多任务等功能的增加. 如:绘图canvas:用于媒介回放的video和audio元素:本地存储localStorage;语义化元素:表单控件等等新增的功能,都是HTML5新特性. 下面列举HTML5新特性详细说明: 一.新的文档类型  (New Doctype) 目前许多网页还在使用XHTML 1.0 并且要在第一行像这样声明文档类型: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1

HTML5新增Canvas标签及对应属性、API详解(基础一)

知识说明: HTML5新增的canvas标签,通过创建画布,在画布上创建任何想要的形状,下面将canvas的API以及属性做一个整理,并且附上时钟的示例,便于后期复习学习!Fighting! 一.标签原型 <canvas width=”1000” height=”1000” id=”myCanvas”> 您的浏览器版本过低,不支持HTML5新增的canvas标签. </canvas> 使用js获取该画布,并指定对象 <script> Var canvasID = doc

HTML5新增核心工具——canvas

Canvas元素称得上是HTML5的核心所在,它是一个依靠JavaScript绘制华丽图像的元素. Canvas由一个可绘制地区HTML代码中的属性定义决定高度和宽度,JavaScript代码可以访问该地区,通过一套完整的绘图功能类似于其他通用二维的API,从而生成动态的图形. Canvas可以在浏览器中绘制出十分华丽的图形,比如: 当然这应该算比较高级的用法了,本菜也不会=.= Canvas一个很大的作用就是制作游戏,本文通过博主之前做的一个小游戏来从零介绍Canvas的用法,先展示下吧: O

HTML5 学习总结(四)——canvas绘图、WebGL、SVG

HTML5 学习总结(四)--canvas绘图.WebGL.SVG 目录 一.Canvas 1.1.创建canvas元素 1.2.画线 1.3.绘制矩形 1.4.绘制圆弧 1.5.绘制图像 1.6.绘制文字 1.7.随机颜色与简单动画 二.WebGL 2.1.HTML5游戏开发 2.2.1.Cocos2D-HTML5 2.2.2.Egret(白鹭引擎) 三.SVG 3.1.SVG Hello Wrold 3.2.多种引入SVG的方法 3.3.画直线 3.4.画椭圆 3.5.文本与矩形 3.6.向

HTML5 canvas绘图基本使用方法

<canvas></canvas>是HTML5中新增的标签,用于绘制图形,实际上,这个标签和其他的标签一样,其特殊之处在于该标签可以获取一个CanvasRenderingContext2D对象,我们可以通过JavaScript脚本来控制该对象进行绘图. <canvas></canvas>只是一个绘制图形的容器,除了id.class.style等属性外,还有height和width属性.在<canvas>>元素上绘图主要有三步: 获取<

HTML5 学习笔记(四)——canvas绘图、WebGL、SVG

一.Canvas canvas是HTML5中新增一个HTML5标签与操作canvas的javascript API,它可以实现在网页中完成动态的2D与3D图像技术.<canvas> 标记和 SVG以及 VML 之间的一个重要的不同是,<canvas> 有一个基于 JavaScript 的绘图 API,而 SVG 和 VML 使用一个 XML 文档来描述绘图.SVG 绘图很容易编辑与生成,但功能明显要弱一些. canvas可以完成动画.游戏.图表.图像处理等原来需要Flash完成的一