Canvas绘图 (html5新增特性)
- Canvas
使用<canvas>对象,需要设置属性:width,height。指定绘图的区域大小。在canvas标签前后出现的信息将在不支持<canvas>元素的浏览器中显示出来。如下:
<canvas id="drawing" width="400" height="400">a drawing of something</canvas>
要在这块画布上绘图,需要取得绘图上下文。取得绘图上下文对象的引用需要调用getContext()方法并传入上下文的名字。传入“2d” 取得2D上下文对象。
<canvas id="drawing" width="400" height="400">a drawing of something</canvas>
<script type="text/javascript">
var drawing=document.getElementById("drawing");
if(drawing.getContext){ //检测获取绘图上下文对象的方法是否存在
var context=drawing.getContext("2d"); }
</script>
要导出<canvas>元素上绘制的图像,可使用toDataURL()方法。参数为图像的类型格式
<canvas id="drawing" width="400" height="400">a drawing of something</canvas>
<script type="text/javascript">
var drawing=document.getElementById("drawing");
if(drawing.getContext){
var imgURL=drawing.toDataURL("image/png");
var image=document.createElement("img");
image.src=imgURL;
document.body.appendChild(image); }
</script>
- 2D上下文
坐标开始于<canvas>元素的左上角,绘制简单的2D图形。
操作大多分为描边和填充两个操作,属性为:fillStyle(填充),strokeStyle(描边).
- 绘制矩形(相关的方法:fillRect(),strokeRect(),clearRect() 清除画布上的矩形区域)
<canvas id="drawing" width="400" height="400">a drawing of something</canvas>
<script type="text/javascript">
var drawing=document.getElementById("drawing");
if(drawing.getContext){
/*var imgURL=drawing.toDataURL("image/png");
var image=document.createElement("img");
image.src=imgURL;
document.body.appendChild(image);*/
var context=drawing.getContext("2d");
context.fillStyle="red";
context.fillRect(10,10,50,50);
context.fillStyle="rgba(0,0,255,0.5)";
context.fillRect(30,30,50,50); }
</script>
- 画布上绘制路径:首先调用beginPath()方法,表示要开始绘制新路径,然后调用方法: arc(),arcTo(),lineTo(),moveTo(),quadraticCurveTo(),rect(), 最后创建路径后选择:closePath()方法,fill(),stroke()。
绘制时钟:
<canvas id="drawing" width="400" height="400">a drawing of something</canvas>
<script type="text/javascript">
var drawing=document.getElementById("drawing");
if(drawing.getContext){
var context=drawing.getContext("2d");
context.beginPath();
//绘制外圆
context.arc(100,100,99,0,2*Math.PI,false);
//绘制内圆
context.moveTo(194,100);
context.arc(100,100,94,0,2*Math.PI,false);
//绘制分针
context.moveTo(100,100);
context.lineTo(100,15);
//绘制时针
context.moveTo(100,100);
context.lineTo(35,100);
//描边
context.stroke();
}
</script>
- 绘制文本:fillText()和strokeText() 四个参数:要绘制的文本字符,x坐标,y坐标,可选最大像素宽度。 属性:font(文本样式,大小,字体),textAlign(文本对齐方式),textBaseline(文本的基线).
context.font="bold 14px Arial";
context.textAlign="center";
context.textBaseline="middle";
context.fillText("12",100,20);
变换:rotate()围绕圆点旋转角度,scale()缩放一定比例,translate()平移,transform,setTransform。
- 绘制图像:把图像绘制到画布上,drawImage()方法。
var img=document.images[0];
context.drawImage(img,100,100);
- 阴影
shadowColor:阴影颜色。
shadowOffsetX:形状或路径x轴方向的阴影偏移量。
shadowOffsetX:形状或路径y轴方向的阴影偏移量。
shadowBlur:模糊像素数。
这些属性通过context对象来修改。在绘制之前设置完成,能自动产生阴影。
Canvas绘图 (html5新增特性)的更多相关文章
- HTML5新增特性
1. 语义化标签 2. 增强型表单 (1)新的表单输入类型 (2)新表单元素 (3)新表单属性 3. 视频和音频 4. Canvas绘图(图形.路径.文本.渐变.图像) 5. SVG绘图 (与Canv ...
- CSS3和HTML5新增特性及使用(保留方便查看)
CSS3 1.边框图片 border-image: url(test.png) 10/10px; outline:10px solid #ff0;outline-offset:15px;边框的边框, ...
- html5一些特性
html5可以理解为html+css+js 其目前可以解决:1.浏览器的兼容问题 2.统一web应用标准 3.解决文档结构定义不明确问题 4.解决web应用中的功能受限问题 5.是程序员编写的web应 ...
- 15. javacript高级程序设计-Canvas绘图
1. Canvas绘图 HTML5的<canvas>元素提供了一组JavaScript API,让我们可以动态的创建图形和图像.图形是在一个特定的上下文中创建的,而上下文对象目前有两种. ...
- HTML5 学习总结(四)——canvas绘图、WebGL、SVG
一.Canvas canvas是HTML5中新增一个HTML5标签与操作canvas的javascript API,它可以实现在网页中完成动态的2D与3D图像技术.<canvas> 标记和 ...
- HTML5 学习笔记(四)——canvas绘图、WebGL、SVG
一.Canvas canvas是HTML5中新增一个HTML5标签与操作canvas的javascript API,它可以实现在网页中完成动态的2D与3D图像技术.<canvas> 标记和 ...
- HTML5新增Canvas标签及对应属性、API详解(基础一)
知识说明: HTML5新增的canvas标签,通过创建画布,在画布上创建任何想要的形状,下面将canvas的API以及属性做一个整理,并且附上时钟的示例,便于后期复习学习!Fighting! 一.标签 ...
- HTML5自学笔记[ 11 ]canvas绘图基础1
html5新增<canvas>标签用于绘制图像,默认宽高是300*150,canvas的宽高需要在这里设置,在css中设置会有问题:设置的形状,如矩形,会等比缩放,而非设置的宽高. 在不支 ...
- HTML5新增核心工具——canvas
原文:HTML5新增核心工具--canvas Canvas元素称得上是HTML5的核心所在,它是一个依靠JavaScript绘制华丽图像的元素. Canvas由一个可绘制地区HTML代码中的属性定义决 ...
随机推荐
- 远程批量查看windosws操作系统3389端口的开放情况
本文只提供思想.具体可以根椐情况拓展. 前提是需要配置远程主机的SNMP协议.主要是共同体哟. 脚本使用: 1.拷贝check_tcp到脚本执行的主机中或在此主机中安装nagios; 2.保持list ...
- 利用原生态的(System.Web.Extensions)JavaScriptSerializer将mvc 前台提交到controller序列化复杂对象
主要代码如下: public JsonResult Test() { string s = Request.Form.ToString(); JavaScriptSerializer jss = ne ...
- 学JS的心路历程 - PixiJS -基础(一)
建立canvas 今天开始我们一步步来看怎么使用PixiJS吧! 在开始之前,要先提醒各位需要先运行webserver,否则将会遇到一些奇怪的问题喔! 最基本的canvas画布是肯定需要的,Pixi提 ...
- jquery滚动条平滑滑动
采用锚点进行页面中的跳转的确很方便,但是要想增加网页的效果,可以使用jquery中的animate,实现滚动的一个动作,慢慢的滚动到你想跳转到的位置,从而看起来会非常高大上. 滚动到顶部: $(' ...
- linux编译安装php apache mysql (已试过)
阅读目录 (全部使用源码安装方式,先安装mysql,然后是apache,再是php,这样好像能防止挺多问题的,期间出现问题基本是依赖没有或者版本不对) 1.简介 2.安装apache 2.1.yum方 ...
- nltk的使用
1. 命令行; import nltk nltk.download() #下载相关模型等,...
- 04_web基础(四)之servlet详解
16.17.18.servlet生命周期 javax.servlet.Servlet接口方法:public String getServletInfo():获取Servlet相关信息(作者,版权,版本 ...
- 设计table表格,用js设计偶数行和奇数行显示不同的颜色
第一种:鼠标经过时table表格中的颜色根据奇偶行改变不同的颜色 <!DOCTYPE html> <html> <head> <meta charset=&q ...
- BOM 对象--location、navigator、screen、history
1.location 对象 location提供了与当前窗口中加载的文档有关的信息,还有一些导航功能.需要注意的是,window.location 和 document.location 引用的是同一 ...
- JavaScript中判断null、undefined与NaN的方法
1.判断undefined: ? 1 2 3 4 var tmp = undefined; if (typeof(tmp) == "undefined"){ alert(" ...