借助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 相关文章推荐
全面解析CSS Media媒体查询使用操作(推荐)
Aug 15 HTML / CSS
css3 box-sizing属性使用参考指南
Jan 08 HTML / CSS
推荐10个CSS3 制作的创意下拉菜单效果
Feb 11 HTML / CSS
基于css3的属性transition制作菜单导航效果
Sep 01 HTML / CSS
浅谈CSS3特性查询(Feature Query: @supports)功能简介
Jul 31 HTML / CSS
css3新单位vw、vh的使用教程
Mar 23 HTML / CSS
html5/css3响应式页面开发总结
Oct 16 HTML / CSS
Html5新增标签与样式及让元素水平垂直居中
Jul 11 HTML / CSS
css3 transform 3d 使用css3创建动态3d立方体(html5实践)
Jan 06 HTML / CSS
使用html5 canvas 画时钟代码实例分享
Nov 11 HTML / CSS
html5实现图片转圈的动画效果——让页面动起来
Oct 16 HTML / CSS
CSS的class与id常用的命名规则
May 18 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
yii实现使用CUploadedFile上传文件的方法
2015/12/28 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
PHP数组基本用法与知识点总结
2020/06/02 PHP
在jQuery1.5中使用deferred对象 着放大镜看Promise
2011/03/12 Javascript
js onload处理html页面加载之后的事件
2013/10/30 Javascript
jQuery中:header选择器用法实例
2014/12/29 Javascript
JQuery实现超链接鼠标提示效果的方法
2015/06/10 Javascript
谈谈impress.js初步理解
2015/09/09 Javascript
第三篇Bootstrap网格基础
2016/06/21 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
2016/06/23 Javascript
使用JSON作为函数的参数的优缺点
2016/10/27 Javascript
详解vue2路由vue-router配置(懒加载)
2017/04/08 Javascript
Javascript中this关键字指向问题的测试与详解
2017/08/11 Javascript
element-ui 表格实现单元格可编辑的示例
2018/02/26 Javascript
JS实现的JSON数组去重算法示例
2018/04/11 Javascript
Vue.js 实现数据展示全部和收起功能
2018/09/05 Javascript
一份超级详细的Vue-cli3.0使用教程【推荐】
2018/11/15 Javascript
openlayers实现地图弹窗
2020/09/25 Javascript
[02:44]DOTA2英雄基础教程 钢背兽
2013/12/19 DOTA
python 运算符 供重载参考
2009/06/11 Python
python实现的一只从百度开始不断搜索的小爬虫
2013/08/13 Python
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
利用Python开发微信支付的注意事项
2016/08/19 Python
tensorflow 中对数组元素的操作方法
2018/07/27 Python
8种用Python实现线性回归的方法对比详解
2019/07/10 Python
Flask框架学习笔记之表单基础介绍与表单提交方式
2019/08/12 Python
解决jupyter notebook显示不全出现框框或者乱码问题
2020/04/09 Python
python中的split、rsplit、splitlines用法说明
2020/10/23 Python
CSS3制作半透明边框(Facebox)类似渐变
2012/12/09 HTML / CSS
AmazeUI折叠式卡片布局,整合内容列表、表格组件实现
2020/08/20 HTML / CSS
西班牙自行车和跑步商店:Alltricks
2018/07/07 全球购物
Engel & Bengel官网:婴儿推车、儿童房家具和婴儿设备
2019/12/28 全球购物
英国时尚首饰品牌:Missoma
2020/06/29 全球购物
护士演讲稿范文
2014/01/05 职场文书
生产部岗位职责范文
2014/02/07 职场文书
学生会竞选演讲稿学习部
2014/08/25 职场文书