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 相关文章推荐
CSS3中Transform动画属性用法详解
Jul 04 HTML / CSS
CSS3——齿轮转动关键代码
May 02 HTML / CSS
animation和transition的区别
Oct 12 HTML / CSS
涂鸦板简单实现 Html5编写属于自己的画画板
Jul 05 HTML / CSS
利用Canvas模仿百度贴吧客户端loading小球的方法示例
Aug 13 HTML / CSS
使用HTML5做个画图板的方法介绍
May 03 HTML / CSS
HTML5语音识别标签写法附图
Nov 18 HTML / CSS
AmazeUI 输入框组的示例代码
Aug 14 HTML / CSS
如何通过 CSS 写出火焰效果
Mar 24 HTML / CSS
5个HTML5的常用本地存储方式详解与介绍
Mar 27 HTML / CSS
CSS3 制作的图片滚动效果
Apr 14 HTML / CSS
css让页脚保持在底部位置的四种方案
Jul 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
php单链表实现代码分享
2016/07/04 PHP
PHP实现一个简单url路由功能实例
2016/11/05 PHP
提高网站信任度的技巧
2008/10/17 Javascript
css结合js制作下拉菜单示例代码
2014/02/27 Javascript
jQuery中get()方法用法实例
2014/12/27 Javascript
Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例
2015/01/01 NodeJs
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(一)
2015/12/10 Javascript
JavaScript制作简单分页插件
2016/09/11 Javascript
jQuery无缝轮播图代码
2016/12/22 Javascript
AngularJS的ng-repeat指令与scope继承关系实例详解
2017/01/21 Javascript
Vue2.x通用编辑组件的封装及应用详解
2019/05/28 Javascript
javascript头像上传代码实例
2019/09/28 Javascript
npm qs模块使用详解
2020/02/07 Javascript
基于JavaScript实现猜数字游戏代码实例
2020/07/30 Javascript
简单了解three.js 着色器材质
2020/08/03 Javascript
基于循环神经网络(RNN)的古诗生成器
2018/03/26 Python
python3实现随机数
2018/06/25 Python
Python中GeoJson和bokeh-1的使用讲解
2019/01/03 Python
Python字典循环添加一键多值的用法实例
2019/01/20 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
2019/02/21 Python
PyQt 实现使窗口中的元素跟随窗口大小的变化而变化
2019/06/18 Python
新手入门Python编程的8个实用建议
2019/07/12 Python
详解Python time库的使用
2019/10/10 Python
英国玛莎百货澳大利亚:Marks & Spencer Australia
2019/08/30 全球购物
电子信息工程专业推荐信
2014/02/14 职场文书
工作违纪检讨书
2014/02/17 职场文书
古汉语文学求职信范文
2014/03/16 职场文书
《青海高原一株柳》教学反思
2014/04/25 职场文书
简单租房协议书范本
2014/08/20 职场文书
个人四风问题整改措施
2014/10/24 职场文书
家庭财产分割协议范文
2014/11/24 职场文书
作文评语集锦
2014/12/25 职场文书
学校清洁工岗位职责
2015/04/15 职场文书
贷款工资证明范本
2015/06/12 职场文书
python之PySide2安装使用及QT Designer UI设计案例教程
2021/07/26 Python
SQL Server一个字符串拆分多行显示或者多行数据合并成一个字符串
2022/05/25 SQL Server