HTML5 canvas基本绘图之绘制线段


Posted in HTML / CSS onJune 27, 2016

<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.   

 

HTML5 canvas基本绘图之绘制线段

如果没有通过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>   

HTML5 canvas基本绘图之绘制线段

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

HTML / CSS 相关文章推荐
纯CSS实现设置半个字符的样式
Jul 03 HTML / CSS
利用CSS3实现进度条的两种姿势详解
Mar 21 HTML / CSS
CSS3实现淘宝留白的方法
Jun 05 HTML / CSS
CSS 说明横向进度条最后显示文字的实现代码
Nov 10 HTML / CSS
HTML5实现视频直播功能思路详解
Nov 16 HTML / CSS
编写html5时调试发现脚本php等网页js、css等失效
Dec 31 HTML / CSS
移动端解决悬浮层(悬浮header、footer)会遮挡住内容的3种方法
Mar 27 HTML / CSS
HTML5页面中尝试调起APP功能
Sep 12 HTML / CSS
利用三角函数在canvas上画虚线的方法
Jan 11 HTML / CSS
CSS中em的正确打开方式详解
Apr 08 HTML / CSS
HTML页面滚动时部分内容位置固定不滚动的实现
Apr 14 HTML / CSS
css中z-index: 0和z-index: auto的区别
Aug 23 HTML / CSS
浅谈HTML5新增及移除的元素
Jun 27 #HTML / CSS
HTML5 canvas基本绘图之绘制矩形
Jun 27 #HTML / CSS
HTML5 canvas基本绘图之绘制阴影效果
Jun 27 #HTML / CSS
涂鸦板简单实现 Html5编写属于自己的画画板
Jul 05 #HTML / CSS
深入剖析webstorage[html5的本地数据处理]
Jul 11 #HTML / CSS
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
Jul 13 #HTML / CSS
HTML5对手机页面长按会粘贴复制禁用的解决方法
Jul 19 #HTML / CSS
You might like
PHP4和PHP5性能测试和对比 测试代码与环境
2007/08/17 PHP
php注销代码(session注销)
2012/05/31 PHP
1亿条数据如何分表100张到Mysql数据库中(PHP)
2015/07/29 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
input的focus方法使用
2010/03/13 Javascript
jQuery实现图片信息的浮动显示实例代码
2013/08/28 Javascript
jquery easyui 结合jsp简单展现table数据示例
2014/04/18 Javascript
Node.js中的process.nextTick使用实例
2015/06/25 Javascript
学习JavaScript设计模式(多态)
2015/11/25 Javascript
微信小程序 前端源码逻辑和工作流详解
2016/10/08 Javascript
jquery Form轻松实现文件上传
2017/05/24 jQuery
ReactJS实现表单的单选多选和反选的示例
2017/10/13 Javascript
JS实现随机生成10个手机号的方法示例
2018/12/07 Javascript
Vue-cli3.x + axios 跨域方案踩坑指北
2019/07/04 Javascript
vue使用高德地图点击下钻上浮效果的实现思路
2019/10/12 Javascript
JS实现移动端可折叠导航菜单(现代都市风)
2020/07/07 Javascript
vue 解决IOS10低版本白屏的问题
2020/11/17 Javascript
[01:47]2018年度DOTA2最具人气解说-完美盛典
2018/12/16 DOTA
[01:11:11]Alliance vs RNG 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
python双向链表实现实例代码
2013/11/21 Python
python解析发往本机的数据包示例 (解析数据包)
2014/01/16 Python
Python3.x对JSON的一些操作示例
2017/09/01 Python
django admin添加数据自动记录user到表中的实现方法
2018/01/05 Python
Python中常用的内置方法
2019/01/28 Python
Holland & Barrett爱尔兰:英国领先的健康零售商
2019/03/31 全球购物
介绍一下HDLC(High-Level Data Link Control)高层数据链路协议
2012/01/21 面试题
事业单位辞职信范文
2014/01/19 职场文书
《蜗牛》教学反思
2014/02/18 职场文书
学习十八大坚定理想信念心得体会
2014/03/11 职场文书
小学班级口号
2014/06/09 职场文书
另类冲刺标语
2014/06/24 职场文书
三严三实学习心得体会
2014/10/13 职场文书
介绍信格式
2015/01/30 职场文书
职称评定个人总结
2015/03/05 职场文书
个人承诺书格式范文
2015/04/29 职场文书
2016春季幼儿园大班开学寄语
2015/12/03 职场文书