借助HTML5 Canvas来绘制三角形和矩形等多边形的方法


Posted in HTML / CSS onMarch 14, 2016

使用HTML5 Canvas绘制多边形所需的CanvasRenderingContext2D对象的主要属性和方法(有「()」者为方法)如下:

属性或方法 基本描述
strokeStyle 用于设置画笔绘制路径的颜色、渐变和模式。该属性的值可以是一个表示css颜色值的字符串。如果你的绘制需求比较复杂,该属性的值还可以是一个CanvasGradient对象或者CanvasPattern对象
globalAlpha 定义绘制内容的透明度,取值在0.0(完全透明)和1.0(完全不透明)之间,默认值为1.0。
lineWidth 定义绘制线条的宽度。默认值是1.0,并且这个属性必须大于0.0。较宽的线条在路径上居中,每边各有线条宽的一半。
lineCap 指定线条两端的线帽如何绘制。合法的值是 butt、round和square。默认值是"butt"。
beginPath() 开始一个新的绘制路径。每次绘制新的路径之前记得调用该方法。
moveTo(int x, int y) 定义一个新的绘制路径的起点坐标
lineTo(int x, int y) 定义一个绘制路径的中间点坐标
stroke(int x, int y) 沿着绘制路径的坐标点顺序绘制直线
closePath() 如果当前的绘制路径是打开的,则闭合该绘制路径。

绘制三角形

JavaScript Code复制内容到剪贴板
  1. <!DOCTYPE html>   
  2. <html>   
  3. <head>   
  4. <meta charset="UTF-8">   
  5. <title>HTML5 Canvas绘制三角形入门示例</title>   
  6. </head>   
  7. <body>   
  8.   
  9. <!-- 添加canvas标签,并加上红色边框以便于在页面上查看 -->   
  10. <canvas id="myCanvas" width="400px" height="300px" style="border: 1px solid red;">   
  11. 您的浏览器不支持canvas标签。   
  12. </canvas>   
  13.   
  14.   
  15. <script type="text/javascript">   
  16. //获取Canvas对象(画布)   
  17. var canvas = document.getElementById("myCanvas");   
  18. //简单地检测当前浏览器是否支持Canvas对象,以免在一些不支持html5的浏览器中提示语法错误   
  19. if(canvas.getContext){     
  20.     //获取对应的CanvasRenderingContext2D对象(画笔)   
  21.     var ctx = canvas.getContext("2d");     
  22.        
  23.     //开始一个新的绘制路径   
  24.     ctx.beginPath();   
  25.     //设置线条颜色为蓝色   
  26.     ctx.strokeStyle = "blue";   
  27.     //设置路径起点坐标   
  28.     ctx.moveTo(20, 50);   
  29.     //绘制直线线段到坐标点(60, 50)   
  30.     ctx.lineTo(20, 100);   
  31.     //绘制直线线段到坐标点(60, 90)   
  32.     ctx.lineTo(70, 100);       
  33.     //先关闭绘制路径。注意,此时将会使用直线连接当前端点和起始端点。   
  34.     ctx.closePath();   
  35.     //最后,按照绘制路径画出直线   
  36.     ctx.stroke();   
  37. }   
  38. </script>   
  39. </body>   
  40. </html>     

对应的显示效果如下:
借助HTML5 Canvas来绘制三角形和矩形等多边形的方法

绘制矩形
之所以将Canvas绘制矩形单独提出来,是因为Canvas的画笔工具——CanvasRenderingContext2D对象为绘制矩形提供了专用的方法。

XML/HTML Code复制内容到剪贴板
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <meta charset="UTF-8">  
  5. <title>HTML5 Canvas绘制矩形入门示例</title>  
  6. </head>  
  7. <body>  
  8.   
  9. <!-- 添加canvas标签,并加上红色边框以便于在页面上查看 -->  
  10. <canvas id="myCanvas" width="400px" height="300px" style="border: 1px solid red;">  
  11. 您的浏览器不支持canvas标签。   
  12. </canvas>  
  13.   
  14. <script type="text/javascript">  
  15. //获取Canvas对象(画布)   
  16. var canvas = document.getElementById("myCanvas");   
  17. //简单地检测当前浏览器是否支持Canvas对象,以免在一些不支持html5的浏览器中提示语法错误   
  18. if(canvas.getContext){     
  19.     //获取对应的CanvasRenderingContext2D对象(画笔)   
  20.     var ctx = canvas.getContext("2d");     
  21.        
  22.     //开始一个新的绘制路径   
  23.     ctx.beginPath();   
  24.     //设置线条颜色为蓝色   
  25.     ctx.strokeStyle = "blue";   
  26.     //以canvas中的坐标点(10,10)作为绘制起始点,绘制一个宽度为80px、高度为50px的矩形   
  27.     ctx.rect(10, 10, 80, 50);   
  28.     //按照指定的路径绘制直线   
  29.     ctx.stroke();   
  30.     //关闭绘制路径   
  31.     ctx.closePath();   
  32. }   
  33. </script>  
  34. </body>  
  35. </html>  

对应的矩形效果显示如下:
借助HTML5 Canvas来绘制三角形和矩形等多边形的方法

HTML / CSS 相关文章推荐
使用CSS3实现字体颜色渐变的实现
Mar 09 HTML / CSS
HTML+CSS3 模仿Windows7 桌面效果
Jun 17 HTML / CSS
纯CSS3实现地球自转实现代码(图文教程附送源码)
Dec 26 HTML / CSS
css3气泡 css3关键帧动画创建的动态通知气泡
Feb 26 HTML / CSS
浅谈css3中的渐进增强和优雅降级
Dec 01 HTML / CSS
html5 canvas 简单画板实现代码
Jan 05 HTML / CSS
html5在移动端的屏幕适应问题示例探讨
Jun 15 HTML / CSS
HTML5在canvas中绘制复杂形状附效果截图
Jun 23 HTML / CSS
HTML5 canvas基本绘图之绘制五角星
Jun 27 HTML / CSS
通过canvas转换颜色为RGBA格式及性能问题的解决
Nov 22 HTML / CSS
css3 filter属性的使用简介
Mar 31 HTML / CSS
基于CSS3画一个iPhone
Apr 21 HTML / CSS
HTML5 Canvas绘制文本及图片的基础教程
Mar 14 #HTML / CSS
用HTML5 Canvas API中的clearRect()方法实现橡皮擦功能
Mar 15 #HTML / CSS
网页中的电话号码如何实现一键直呼效果_附示例
Mar 15 #HTML / CSS
HTML5使用Audio标签实现歌词同步的效果
Mar 17 #HTML / CSS
HTML5仿手机微信聊天界面
Mar 18 #HTML / CSS
HTML5 Canvas实现文本对齐的方法总结
Mar 24 #HTML / CSS
使用HTML5 Canvas API中的clip()方法裁剪区域图像
Mar 25 #HTML / CSS
You might like
php str_pad 函数用法简介
2009/07/11 PHP
PHP实现的操作数组类库定义与用法示例
2019/05/24 PHP
利用JQuery和Servlet实现跨域提交请求示例分享
2014/02/12 Javascript
轻松创建nodejs服务器(7):阻塞操作的实现
2014/12/18 NodeJs
浅谈jquery中delegate()与live()
2015/06/22 Javascript
使用JavaScript为Kindeditor自定义按钮增加Audio标签
2016/03/18 Javascript
Ionic如何实现下拉刷新与上拉加载功能
2016/06/03 Javascript
JS代码实现百度地图 画圆 删除标注
2016/10/12 Javascript
JavaScript日期对象(Date)基本用法示例
2017/01/18 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
2017/01/21 Javascript
Javascript 详解封装from表单数据为json串进行ajax提交
2017/03/29 Javascript
Vue组件开发之LeanCloud带图形校验码的短信发送功能
2017/11/07 Javascript
vue初始化动画加载的实例
2018/09/01 Javascript
详解Vue改变数组中对象的属性不重新渲染View的解决方案
2018/09/21 Javascript
CKeditor富文本编辑器使用技巧之添加自定义插件的方法
2019/06/14 Javascript
vue.js实现简单的计算器功能
2020/02/22 Javascript
js构造函数constructor和原型prototype原理与用法实例分析
2020/03/02 Javascript
python删除列表中重复记录的方法
2015/04/28 Python
python开发之基于thread线程搜索本地文件的方法
2015/11/11 Python
python实现冒泡排序算法的两种方法
2018/03/10 Python
使用Python实现一个栈判断括号是否平衡
2018/08/23 Python
python获取txt文件词向量过程详解
2019/07/05 Python
Python大数据之使用lxml库解析html网页文件示例
2019/11/16 Python
pytorch模型预测结果与ndarray互转方式
2020/01/15 Python
浅谈TensorFlow中读取图像数据的三种方式
2020/06/30 Python
使用OpenCV去除面积较小的连通域
2020/07/05 Python
草莓网美国官网:Strawberrynet USA
2016/12/11 全球购物
Mio Skincare英国官网:身体紧致及孕期身体护理
2018/08/19 全球购物
函授本科毕业生自我鉴定
2013/10/16 职场文书
毕业生求职的求职信
2013/12/05 职场文书
我的网上商城创业计划书
2013/12/26 职场文书
公司经理聘任书
2014/03/29 职场文书
2014年幼儿园学期工作总结
2014/12/05 职场文书
2014年骨干教师工作总结
2014/12/19 职场文书
幼师大班个人总结
2015/02/13 职场文书
你对自己的信用报告有过了解吗?
2019/07/09 职场文书