最新标注
热门标注
历史更新
站点地图
RSS
Home
CrazyCoder
»
原创
»
it评论
»
it业界
»
互联网
»
精品软件
开发语言
»
网络编程
编程综合
嵌入式开发
算法
英文资料
汇编语言
PowerBuilder
p2p技术
验证码识别
DotNet
Java教程
C语言教程
C 教程
Delphi教程
VB教程
QQ协议开发
项目管理
»
数据库
»
Web开发
»
Python
Css教程
XML教程
网页特效
PhotoShop教程
Illustrator教程
CorelDraw教程
Ruby教程
CorelDraw教程
网站安全
开发平台-工具
Web
PHP教程
Flash教程
Ajax教程
Javascript教程
Html教程
Dreamweaver
Asp教程
技术综合
»
软件测试
办公软件
QQ相关
Windows
网络技术
游戏开发
软件工程
软件教程
编程思想
游戏开发
外挂开发
OpenApi
AutoCad
广告设计
3D设计
平面设计相关
移动手机开发
服务器
»
Linux
Unix/FreeBsd
web服务器
服务器技术
安全
博文摘选
»
翻译
首页
»
博文摘选
» HTML_5 Canvas(1)
Rss订阅
HTML_5 Canvas(1)
on 2011-9-11
in
博文摘选
|
0 Comment
HTML5 简介
HTML5相对于html4的优点是:
1 多了许多标签,提供了更为合理的Tag
2 提供了极为强大的API接口,使得以前需要使用复杂的javascrpt实现的功能直接使用标签就可以使用了
3 Html仍然在不断完善过程中,现在大部分浏览器已经具备了某些html5的支持,浏览器支持的比例按照google chrome,opera,firefox,safari,ie逐渐减少
Canvas 接口
HTML5提供
标签
比如
基本的模板:
Canvas的接口:
context.moveTo(x,y); //将画笔移动到(x,y)
context.lineTo(x,y); //从当前画笔画一条线到(x,y)
context.stroke();//画线并显示 context.lineWidth=[value]; //笔触长度
context.strokeStyle=[value]; //画线颜色
context.lineCap=[value]; //比划类型,value可以是butt,round,square
context.arc(centerX, centerY, radius, startingAngle,
endingAngle, antiClockwise);//画一个圆弧,以centerX,centerY为圆心,radius为半径,开始角度为staringAngle,结束角度为endingAngle,antiClockwise是代表顺时针
window.onload =
function
(){
var
canvas = document.getElementById("myCanvas");
var
context = canvas.getContext("2d");
var
centerX = 288;
var
centerY = 160;
var
radius = 75;
var
startingAngle = 1.1 * Math.PI;
var
endingAngle = 1.9 * Math.PI;
var
counterclockwise =
false
;
context.arc(centerX, centerY, radius, startingAngle,
endingAngle, counterclockwise);
context.lineWidth = 15;
context.strokeStyle = "black";
// line color
context.stroke();
};
产生的图就是
context.quadraticCurveTo(controlX, controlY, endX, endY);
//画一条二次曲线(数学上的二次曲线是三点确定一个曲线,因此就有startpoint,controlpoint,endpoint三个点来确定)
window.onload =
function
(){
var
canvas = document.getElementById("myCanvas");
var
context = canvas.getContext("2d");
context.moveTo(188, 150);
var
controlX = 288;
var
controlY = 0;
var
endX = 388;
var
endY = 150;
context.quadraticCurveTo(controlX, controlY, endX, endY);
context.lineWidth = 10;
context.strokeStyle = "black";
// line color
context.stroke();
};
产生的效果
context.bezierCurveTo(controlX1, controlY1, controlX2, controlY2, endX, endY);
//贝塞尔曲线,贝塞尔曲线由4个点组成,具体说明可以参考度娘http://baike.baidu.com/view/60154.htm
window.onload = function(){
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
context.moveTo(188, 130);
var controlX1 = 140;
var controlY1 = 10;
var controlX2 = 388;
var controlY2 = 10;
var endX = 388;
var endY = 170;
context.bezierCurveTo(controlX1, controlY1, controlX2,
controlY2, endX, endY);
context.lineWidth = 10;
context.strokeStyle = "black"; // line color
context.stroke();
};
生成的效果:
起始点加上参数的三个点组成四个点就划成了贝塞尔曲线
context.beginPath();
//将多种曲线和在一起的方法
window.onload = function(){
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
context.beginPath();
context.moveTo(100, 20);
context.lineTo(200, 160); // line 1 画直线
context.quadraticCurveTo(230, 200, 250, 120); // quadratic curve 二次曲线
context.bezierCurveTo(290, -40, 300, 200, 400, 150); // bezier curve
context.lineTo(500, 90); // line 2
context.lineWidth = 5;
context.strokeStyle = "#0000ff";
context.stroke();
};
效果图:
context.lineJoin=[value];
//将两条直线连接起来的方式,比如可以是miter(直连), round(圆连), bevel(平连)
window.onload = function(){
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
// miter line joine (left)
context.beginPath();
context.moveTo(canvas.width / 2 - 50 - 140, canvas.height - 50); // line 1
context.lineTo(canvas.width / 2 - 140, 50); // line 1
context.lineTo(canvas.width / 2 + 50 - 140, canvas.height - 50); // line 1
context.lineWidth = 25;
context.lineJoin = "miter";
context.stroke();
// round line join (middle)
context.beginPath();
context.moveTo(canvas.width / 2 - 50, canvas.height - 50); // line 1
context.lineTo(canvas.width / 2, 50); // line 1
context.lineTo(canvas.width / 2 + 50, canvas.height - 50); // line 1
context.lineWidth = 25;
context.lineJoin = "round";
context.stroke();
// bevel line join (right)
context.beginPath();
context.moveTo(canvas.width / 2 - 50 + 140, canvas.height - 50); // line 1
context.lineTo(canvas.width / 2 + 140, 50); // line 1
context.lineTo(canvas.width / 2 + 50 + 140, canvas.height - 50); // line 1
context.lineWidth = 25;
context.lineJoin = "bevel";
context.stroke();
};
效果图:
context.arcTo(controlX,controlY,endX,endY,radius);
//制作圆弧拐角
window.onload = function(){
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
var rectWidth = 200;
var rectHeight = 100;
var rectX = canvas.width / 2 - rectWidth / 2;
var rectY = canvas.height / 2 - rectHeight / 2;
var cornerRadius = 50;
context.beginPath();
context.moveTo(rectX, rectY);
context.lineTo(rectX + rectWidth - cornerRadius, rectY);
context.arcTo(rectX + rectWidth, rectY, rectX + rectWidth,
rectY + cornerRadius, cornerRadius);
context.lineTo(rectX + rectWidth, rectY + rectHeight);
context.lineWidth = 5;
context.stroke();
};
效果图:
context.closePath();
//完成一条封闭的图案
window.onload =
function
(){
var
canvas = document.getElementById("myCanvas");
var
context = canvas.getContext("2d");
context.beginPath();
// begin custom shape
context.moveTo(170, 80);
context.bezierCurveTo(130, 100, 130, 150, 230, 150);
context.bezierCurveTo(250, 180, 320, 180, 340, 150);
context.bezierCurveTo(420, 150, 420, 120, 390, 100);
context.bezierCurveTo(430, 40, 370, 30, 340, 50);
context.bezierCurveTo(320, 5, 250, 20, 250, 50);
context.bezierCurveTo(200, 5, 150, 20, 170, 80); //注意这里的170,80必须和起点一样
context.closePath();
// complete custom shape
context.lineWidth = 5;
context.strokeStyle = "#0000ff";
context.stroke();
};
效果图:
context.fillStyle=[value];
context.fill();
//这两个要连在一起用,为封闭的曲线上色
比如
context.fillStyle = "#8ED6FF";
context.fill();
context.rect(topLeftCornerX,topLeftCornerY,width,height);
//画矩形,需要给出左上角坐标和高宽
context.arc(centerX,centerY,radius,0,2*Math.PI,
false
);
//画圆,圆心(centerX, centerY),半径为radius,从0角度开始,2pi角度,顺时针画
该代码都是从http://www.html5canvastutorials.com/ copy过来的,仅仅做了一些翻译和注释
强烈推荐这个网站作为学习html5 canvas的站点。
笔者也刚开始学习html5,这篇是学习笔记
参考文档:
http://baike.baidu.com/view/951383.htm#2_3
http://www.html5canvastutorials.com/tutorials/html5-canvas-element/
http://www.w3school.com.cn/html5/html5_canvas.asp
作者:yjf512(叶剑峰)
出处:http://www.cnblogs.com/yjf512/
本文版权归yjf512和cnBlog共有,欢迎转载,但未经作者同意必须保留此段声明
Tags:
延伸阅读
最新评论
发表评论
昵称
评论
验证码
点击图片更换
赞助商广告
随机更新
facebook,Facebook f8: Timeline 和 Social Apps 背後的意義
asp.net三种输出javascript的方法
ps肤色还原,Photoshop还原偏暗外景美女图片的水嫩肤色
深入了解,深入了解Dynamic & DLR(二)
iphone5,丁磊曝光iPhone5延期原因 肯定苹果创新
互联网排名,全球互联网下载速度排名 中国位列80名以后
Ubuntu 11.10 Beta 2全新发布
中微子,CERN物理学家声称中微子速度超越光速
盛大光速搜索,盛大发布首个搜索产品 光速搜索成最大卖点
微博营销的价值,企业微博如何营销才能实现最大价值
美图秀秀拍照,美图秀秀随拍照打造意境LOMO风
toomany,MySQL出现too many connections(1040)
铁娘子,惠普的变数:德国佬走人 铁娘子驾临(图)
免费宣传机器人,Google机器人免费BUS将到终点
视频:小米手机成功刷上Android原生系统
李艾科执掌惠普11个月大事记:重组PC部门
Facebook深度整合媒体分享:Spotify和Hulu
智能手机用户忠诚度PK:苹果继续领先
高仿iphone,山寨之王驾到,高仿iPhone 4手机soPhone 外观界面评测
百度秋实,百度移动应用广告平台上线 定名为“秋实”
facebook,Facebook开发者大会问答环节实录
卷土重来:关于新版Color你应该知道的5点
万利达zpad,万利达Zpad双雄征战平板江湖
惠特曼:惠普危急时刻的"秀兰·邓波儿 ?
2012年底,联通称2012 年底北京实现全民 20M宽带
CentOS 下Apache+PHP+MySQL 服务器配置(上)
打开cmd一闪,dreamweaver 无法打开,一闪而过的解决办法
twitter,Twitter测试新广告产品 计划销售政治广告
开源系统,开源网络访问控制系统PacketFence 3.0版发布
虚拟社交依赖症,Anybeat虚拟社交网络的希望?
热门标注
时速160公里
(1)
时速120公里
(1)
时速200公里
(1)
时速45公里车震
(1)
通达oa报表组件
(1)
公务员辞职创业
(1)
淄博乐途户外
(1)
乐途28
(1)
乐途旅游网
(1)
噱头什么意思
(1)
米乐途
(1)
什么是噱头
(1)
噱头漫画日和
(1)
噱头是什么意思
(1)
乐途网
(1)
噱头怎么读
(1)
旧元素新组合
(1)
街市伟
(1)
街市的童话
(1)
元素组合游戏
(1)
最近更新
小改动大效果:记一次CPU负载高问题排查和解决
sql去除重复,Python 去除序列s中的重复元素
bingmap,[Windows Phone] 在Windows Phone应用中使用Google Map替代Bing Map
野指针,[C++]野指针的产生以及应对办法
数据库死锁,把 Visual Studio 死锁了,Bug?
XML解析中的namespace初探
网易视频,是技术还是态度,网易的视频Title
未来之超机学习机,为未来学习
ps批处理怎么用,用批处理来自动化测试
开源技术选型手册,半开源项目一之双机热备软件设计框架以及技术选型
ajaxpro,jQuery Ajax 仿AjaxPro.Utility.RegisterTypeForAjax辅助方法
所见所闻所感,华为openday所闻所感——中兴面经与华为openday(二)
python中那纠结的os.system()与空格处理
不确定性问题,考考你,一个很简单却很多人都不确定的问题
单利模式,通用代码学习笔记--单利模式
ssis教程,SSIS可靠性和扩展性—错误输出
视图索引,SQL Server 索引和视图
数据库死锁,令人无法理解的死锁案例分析
正则表达式,文本处理之利器正则表达式闪亮登场
cz3160,pku 3160 Father Christmas flymouse
最新标注
时速160公里
(1)
时速120公里
(1)
时速200公里
(1)
时速45公里车震
(1)
通达oa报表组件
(1)
公务员辞职创业
(1)
淄博乐途户外
(1)
乐途28
(1)
乐途旅游网
(1)
噱头什么意思
(1)
米乐途
(1)
什么是噱头
(1)
噱头漫画日和
(1)
噱头是什么意思
(1)
乐途网
(1)
噱头怎么读
(1)
旧元素新组合
(1)
街市伟
(1)
街市的童话
(1)
元素组合游戏
(1)
最新评论