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弹性盒模型开发笔记(一)
Apr 26 HTML / CSS
详解使用CSS3的@media来编写响应式的页面
Nov 01 HTML / CSS
详解CSS3中的box-sizing(content-box与border-box)
Apr 19 HTML / CSS
基于 HTML5 的 WebGL 3D 版俄罗斯方块的示例代码
May 28 HTML / CSS
基于 HTML5 WebGL 实现的垃圾分类系统
Oct 08 HTML / CSS
纯html5+css3下拉导航菜单实现代码
Mar 18 HTML / CSS
解析HTML5中的新功能本地存储localStorage
Mar 01 HTML / CSS
详解WebSocket跨域问题解决
Aug 06 HTML / CSS
Html5监听手机摇一摇事件的实现
Nov 07 HTML / CSS
移动端HTML5 input常见问题(小结)
Sep 28 HTML / CSS
z-index不起作用
Mar 31 HTML / CSS
CSS完成视差滚动效果
Apr 27 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
Apache, PHP在Windows 9x/NT下的安装与配置 (一)
2006/10/09 PHP
PHP 第二节 数据类型之数值型
2012/04/28 PHP
自定义php类(查找/修改)xml文档
2013/03/26 PHP
PHP进阶学习之反射基本概念与用法分析
2019/06/18 PHP
Nigma vs Alliance BO5 第四场2.14
2021/03/10 DOTA
比较简单实用的使用正则三种版本的js去空格处理方法
2007/11/18 Javascript
js实现的仿新浪微博完美的时间组件升级版
2011/12/20 Javascript
JavaScript高级程序设计(第3版)学习笔记11 内建js对象
2012/10/11 Javascript
$.getJSON在IE下失效的原因分析及解决方法
2013/06/16 Javascript
js实现可得到不同颜色值的颜色选择器实例
2015/02/28 Javascript
JavaScript模拟实现继承的方法
2015/03/30 Javascript
JavaScript实现自动变换表格边框颜色
2015/05/08 Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
2015/06/10 Javascript
基于zepto的移动端轻量级日期插件--date_picker
2016/03/04 Javascript
HTML Table 空白单元格补全的简单实现
2016/10/13 Javascript
D3.js实现文本的换行详解
2016/10/14 Javascript
div实现自适应高度的textarea实现angular双向绑定
2017/01/08 Javascript
JS中cookie的使用及缺点讲解
2017/05/13 Javascript
nodejs多版本管理总结
2018/04/03 NodeJs
JS实现移动端可折叠导航菜单(现代都市风)
2020/07/07 Javascript
Python优化技巧之利用ctypes提高执行速度
2016/09/11 Python
疯狂上涨的Python 开发者应从2.x还是3.x着手?
2017/11/16 Python
python+opencv实现动态物体识别
2018/01/09 Python
Python爬虫小例子——爬取51job发布的工作职位
2020/07/10 Python
CSS3教程:边框属性border的极致应用
2009/04/02 HTML / CSS
CSS3使用border-radius属性制作圆角
2014/12/22 HTML / CSS
String s = new String(“xyz”);创建了几个String Object?
2015/08/05 面试题
物流仓管员工作职责
2014/01/06 职场文书
《和我们一样享受春天》教学反思
2014/02/07 职场文书
读书活动总结范文
2014/04/26 职场文书
集中采购方案
2014/06/10 职场文书
巾帼文明岗事迹材料
2014/12/24 职场文书
2015年房产销售工作总结范文
2015/05/22 职场文书
学习心得体会
2019/06/20 职场文书
pytorch 运行一段时间后出现GPU OOM的问题
2021/06/02 Python
关于python中readlines函数的参数hint的相关知识总结
2021/06/24 Python