Canvas绘图API
Canvas就是一个画布,可以进行任何的线、图形、填充等一系列的操作。
Canvas的Context对象
要使用Canvas来绘制图形必须在页面中添加Canvas的标签
<canvas id="canvasDemo" width="400" height="400">
<p>请使用支持html5的浏览器查看实例</p>
</canvas>
id是必须的,js要用id来那当前的Canvas的Dom对象。通过次Cancas的Dom对象就可以获取它的上下文(Context)。
<script type="text/javascript">
var canvasDom = document.getElementById("canvaDemo");
var context = canvasDom.getContext('2d');
</script>
Context上下文默认两种绘制方式:绘制线(stroke)或填充(fill)。
Canvas绘制步骤:创建HTML页面,设置画布标签。编写js,获取画布dom对象。通过canvas标签的dom对象获取上下文。设置绘制样式、颜色。绘制矩形或填充矩形。
<body>
<canvas id="canvasDemo" width="500" height="500">
<p>请使用支持HMTL5的浏览器查看本实例</p>
</canvas>
<script type="text/javascript">
var canvasDom = document.getElementById("canvasDemo");
var context = canvas.getContext('2d');
context.strokeStyle="red";
context.stroke.Rect(10,10,190,100);
context.fillStyle="blue";
context.fillRect(110,110,100,100);
</script>
</body>
Canvas绘制线条
Context对象的beginPath方法表示开始绘制路径,moveTo(x,y)方法设置线段的起点,lineTo(x,y)方法设置线段的终点,stroke方法用来给透明的线段着色。moveto和lineto方法可以多次使用。最后,还可以使用closePath方法,自动绘制一条当前点到起点的直线,形成一个封闭图形,省却使用一次lineto方法。
<body>
<canvas id="canvasDemo" width="500" height="500" />
<script type="text/javascript">
var canvasDom = document.getElementById("canvasDemo");
var context = canvasDom.getContext("2d");
context.beginPath(); //开始路径绘制
context.moveTo(20, 20); //设置路径起点 坐标为(20, 20)
context.lineTo(200, 200); //绘制一条到(200,20)的直线
context.lineTo(400, 20);
context.closePath();
context.lineWidth = 2.0; //设置线宽
context.strokeStyle = "#CC0000"; //设置线条颜色
context.stroke(); //对颜色进行着色,此时线条才可见
</script>
</body>
Canvas绘制文本
Context上下文对象的fillText(string x, y)方法是用来绘制文本。他的三个参数分别为文本内容、起点的x坐标,y坐标。使用之前,需用font设置文本、大小、样式。strokeText方法用来添加空心字。fillText方法不支持文本断行,即所有文本出现在一行。若要生成多行文本,只有调用多次fillText方法。
<canvas id="canvasDemo" width="500" height="500" />
<script type="text/javascript">
var canvas = document.getElementById("canvasDemo");
var context = canvasDom.getContext("2d");
context.moveTo(200, 200);
context.font = "Bold 50px Arial";
context.textAlign = "left";
context.fillStyle = "#005600";
context.fillText("哈哈", 10, 50);
context.strokeText("blog.itjeek.com", 10, 100);
</script>
Canvas绘制图形和椭圆
Context的arc方法就是绘制原形或椭圆,arc方法的x和y参数是圆心坐标,radius是半径,startAngle和endAnlge则是扇形的起始角度和终止角度,anticlockwise表示做图形时是逆时针(true)还是顺时针(false)。
<canvas id="canvasDemo" width="500" height="500" />
<script type="text/javascript">
var canvasDom = document.getElementById("canvasDemo");
var context = canvasDom.getContext("2d");
context.beginPath();
context.arc(60, 60, 50 , 0, Math.PI * 2, true);
context.lineWidth = 2.0;
context.strokeStyle = "#000";
context.stroke();
</script>
Canvas绘制图片
<canvas id="canvasdemo" height="500" width="500" />
<script type="text/javascript">
var canvasDom = document.getElementById("canvasDemo");
var context = canvasDom.getContext("2d");
var image = new Image();
image.src = "images/a.png";
image.onload = function(){
for(var i = 0 ; i < 10 ; i++){
context.drawImage(image, 100+i*80, 100+i*80);
}
};
</script>
Canvas绘图API的更多相关文章
- Html5 学习系列(五)Canvas绘图API快速入门(2)
Canvas绘图API Demos 上一篇文章中,笔者已经给大家演示了怎么快速用Canvas的API绘制一个矩形出来.接下里我会在本文中给各位介绍Canvas的其他API:绘制线条.绘制椭圆.绘制图片 ...
- Html5 学习系列(五)Canvas绘图API快速入门(1)
引言:Canvas绘图API快速入门 在接触HTML5的初学者包括我都在很多地方见到非常炫的一些页面,甚至好多学习HTML5的开发者都是冲着Web端的页游去的,那么HTML5那么绚丽的页面效果以及游戏 ...
- 引言:Canvas绘图API快速入门
引言:Canvas绘图API快速入门 在接触HTML5的初学者包括我都在很多地方见到非常炫的一些页面,甚至好多学习HTML5的开发者都是冲着Web端的页游去的,那么HTML5那么绚丽的页面效果以及游戏 ...
- canvas绘图API详解
canvas绘图API详解 1.context的状态 矩阵变换属性 当前剪辑区域 context的其他状态属性: strokeStyle, fillStyle, globalAlpha, lineWi ...
- canvas 绘图api的位置问题
很久没碰canvas了,今天因为canvas绘图的为之问题浪费了一些时间. 我们知道canvas的默认宽高是300X150嘛. 实际使用的时候当然是自定义一个高宽啦. 通常我们会习惯性地在js中通过c ...
- 有趣的Javascript:只需一个JS让万恶的IE5、IE6、IE7、IE8全都支持H5原生Canvas绘图(有演示demo)
该demo支持IE5以上任意内核的浏览器 查看演示demo:支持IE5以上版本的浏览器Canvas绘图demo 补充:chats.js和echarts等图表库也可以使用本方法兼容IE6以上浏览器 1. ...
- HTML5 学习总结(四)——canvas绘图、WebGL、SVG
一.Canvas canvas是HTML5中新增一个HTML5标签与操作canvas的javascript API,它可以实现在网页中完成动态的2D与3D图像技术.<canvas> 标记和 ...
- canvas绘图、WebGL、SVG
目录 一.Canvas 1.1.创建canvas元素 1.2.画线 1.3.绘制矩形 1.4.绘制圆弧 1.5.绘制图像 1.6.绘制文字 1.7.随机颜色与简单动画 二.WebGL 2.1.HTML ...
- HTML5 学习笔记(四)——canvas绘图、WebGL、SVG
一.Canvas canvas是HTML5中新增一个HTML5标签与操作canvas的javascript API,它可以实现在网页中完成动态的2D与3D图像技术.<canvas> 标记和 ...
随机推荐
- Sum Root to Leaf Numbers [LeetCode]
Problem description: http://oj.leetcode.com/problems/sum-root-to-leaf-numbers/ Basic idea: To store ...
- wordpress添加子主题
使用子主题,可以继承父主题的所有功能,同时避免因为直接使用父主题在父主题升级时造成文件丢失的情况. 子主题的创建很简单: 1.首先在主题文件夹下(wp-content\themes)建立一个文件夹,用 ...
- uva 1220
1220 - Party at Hali-Bula Time limit: 3.000 seconds Dear Contestant, I'm going to have a party at my ...
- 在现有 SharePoint 服务器上安装 PowerPivot for SharePoint
步骤1: 检查 SQL Server 2008 R2 Analysis Services 实例的“程序”文件夹.如果您找到了现有安装或之前安装的证据,则执行剩余步骤.否则,直接执行步骤 2:安装 Po ...
- js基础之数组
数组方法 添加: push arr.push();//尾部添加 unshift arr.unshift();//头部添加 删除: pop arr.pop();//尾部删除 shift arr.shif ...
- 一个高在线(可以超过1024)多线程的socket echo server(pthreads 和 libevent扩展)
研究了3周吧,本来打算用pthreads+event扩展的,结果event扩展太原始了,太多函数了,实在不知道怎么在外部随时发送数据给客户端,所以改用libevent, 改用libevent之后花了2 ...
- 使用WBI SAP Adapter 实现IDoc的同步处理(转)
1. 应用背景 某汽车制造企业(以下称为厂商A)与其仓储系统提供商(以下称为厂商B)需要进行数据交换.汽车厂商A使用SAP系统作ERP管理,所有数据都要进入SAP进行处理,仓储系统提供商使用的是自有的 ...
- jmeter之json数据参数化 断言等
在 http Load Testing 中,json 数据的提交是个让人头疼的问题.本文详细介绍如何进行 JMeter 的 json 测试提交,以及如何将其参数化.Step 1 http json 请 ...
- JSON:org.json的基本用法
java中用于解释json的主流工具有org.json.json-lib与gson,本文介绍org.json的应用. 官方文档: http://www.json.org/java/ http://de ...
- Hello Struts2
Struts2 概述 Struts2 是一个用来开发 MVC 应用程序的框架. 它提供了 Web 应用程序开发过程中的一些常见问题的解决方案: 对来自用户的输入数据进行合法性验证; 统一的布局; 可扩 ...