HTML5 canvas基本绘图之绘制线段


<canvas></canvas>是HTML5中新增的标签,用于绘制图形,实际上,这个标签和其他的标签一样,其特殊之处在于该标签可以获取一个CanvasRenderingContext2D对象,我们可以通过JavaScript脚本来控制该对象进行绘图。

<canvas></canvas>只是一个绘制图形的容器,除了id、class、style等属性外,还有height和width属性。在<canvas>>元素上绘图主要有三步: 

 1.获取<canvas>元素对应的DOM对象,这是一个Canvas对象;
 2.调用Canvas对象的getContext()方法,得到一个CanvasRenderingContext2D对象;
 3.调用CanvasRenderingContext2D对象进行绘图。
 
绘制线段moveTo()和lineTo()

以下是一个简单的<canvas>绘图示例:

XML/HTML Code复制内容到剪贴板
  1. <!DOCTYPE html>  
  2. <html lang="en">  
  3. <head>  
  4.     <meta charset="UTF-8">  
  5.     <title>canvas绘图演示</title>  
  6.     <style type="text/css">  
  7.         #canvas{   
  8.             border: 1px solid #ADACB0;   
  9.             display: block;   
  10.             margin: 20px auto;   
  11.         }   
  12.     </style>  
  13. </head>  
  14. <body>  
  15.     <canvas id="canvas" width="300" height="300">  
  16.         你的浏览器还不支持canvas   
  17.     </canvas>  
  18. </body>  
  19. <script type="text/javascript">  
  20.     var canvas = document.getElementById("canvas");   
  21.     var context = canvas.getContext("2d");   
  22.     //设置对象起始点和终点   
  23.     context.moveTo(10,10);   
  24.     context.lineTo(200,200);   
  25.     //设置样式   
  26.     context.lineWidth = 2;   
  27.     context.strokeStyle = "#F5270B";   
  28.     //绘制   
  29.     context.stroke();   
  30. </script>  
  31. </html>  
  32.   

 

如果没有通过moveTo()特别指定,lineTo()的起始点是以上一个点为准。因此,如果需要重新选择起始点,则需要通过moveTo()方法。如果需要对不同的线段设置样式,则需要通过context.beginPath()重新开启一条路径,下面是一个示例:

JavaScript Code复制内容到剪贴板
  1. <script type="text/javascript">   
  2.     var canvas = document.getElementById("canvas");   
  3.     var context = canvas.getContext("2d");   
  4.     //设置对象起始点和终点   
  5.     context.beginPath();   
  6.     context.moveTo(100,100);   
  7.     context.lineTo(700,100);   
  8.     context.lineTo(700,400);   
  9.     context.lineWidth = 2;   
  10.     context.strokeStyle = "#F5270B";   
  11.     //绘制   
  12.     context.stroke();   
  13.   
  14.     context.beginPath();   
  15.     context.moveTo(100,200);//这里的moveTo换成lineTo效果是一样的   
  16.     context.lineTo(600,200);   
  17.     context.lineTo(600,400);   
  18.     //strokeStyle的颜色有新的值,则覆盖上面设置的值   
  19.     //lineWidth没有新的值,则按上面设置的值显示   
  20.     context.strokeStyle = "#0D25F6";   
  21.     //绘制   
  22.     context.stroke();   
  23. </script>   

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持phpstudy。



相关阅读:
VC基于ADO技术访问数据库的方法
Android编程之内存溢出解决方案(OOM)实例总结
Android图片处理实例介绍(图)
android预置默认的语音信箱号码具体实现
Java编程中字节流与字符流IO操作示例
VC创建DLL动态链接库的方法
jQuery插件制作之参数用法实例分析
JS文字球状放大效果代码分享
Ubuntu15.04桌面操作系统怎么安装?
使用ajax操作 JavaScript 对象
windows下安装、卸载mysql服务的方法(mysql 5.6 zip解压版安装教程)
MySQL中出现乱码问题的终极解决宝典
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
php中preg_replace_callback函数简单用法示例
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 服装专业实习总结 小班语言活动:胖熊吹气球 原来自己没那么坚强 二年级阅兵式观后感 暮色是流淌过来的 我爱家乡的小河_关于描写小河的小学生作文300字 同陌生人交谈,第一句话说什么? 遇到挫折,不能退缩作文500字 我们所爱的国度总是幽默频出,搞笑献上 以活力为话题的作文 关于描写夏天的诗句 适合生日祝福的话 你是那苍劲的古松 初中初一作文700字:我和妹妹 房屋租赁发票委托书 精卫填海读后感100字 四年级劳动节作文:劳动节登长城 分监区长竞岗位演讲稿 “不忘恩师,不忘母校”主题班会活动方案 最新学校优秀评语 我的新朋友--电脑作文900字 《墨馨书香诗词曲文书画集》词/书斋情 2016新学期计划怎么写 回忆再美、终究已经成为过往、未来虽然模糊、但终须去努力。 《肖申克救赎》观后感 2016年1月27日 00:30:54 公司销售业务员述职报告范文(2011年述职) 你的天国妙不可言 《高级财务管理》之学习体会 我是落在谁发间的一朵雨 初中初二作文1500字:七宗罪,七柄刃 4 傲慢和妒忌 中考满分作文_永不放弃 感人的校园爱情故事 伤感日志分享 关于中考的说说中考加油的说说三年的感情,被中考打扰了 观看《殷墟揭密,薪火传承作文500字 小学五年级作文600字:吹气球的乐趣 教师骨干培训会议上教育局领导讲话 飞“冲浪” 晚安心语:相遇总是猝不及防,而离别多是蓄谋已久 员工入职一年心得体会3篇 你最终还是选择了离开 勉励高三学生的话 鹏飞海浪春 我爱校园的操场作文450字 夜如水,美如梦 骂男生的话不带脏字 开斋节放假通知 加强干部队伍执政能力建设的思考 企业管理顾问协议 我該怎麼讓你再愛我。。 七年级语文下册第三单元教学设计 我爱你,不过那是以前而已

Copyright © 2016 phpStudy |