HTML5在canvas中绘制复杂形状附效果截图


Posted in HTML / CSS onJune 23, 2014

一、绘制复杂形状或路径

在简单的矩形不能满足需求的情况下,绘图环境提供了如下方法来绘制复杂的形状或路径。

beginPath() : 开始绘制一个新路径。
closePath() : 通过绘制一条当前点到路径起点的线段来闭合形状。
fill() , stroke() : 填充形状或绘制空心形状。
moveTo() : 将当前点移动到点(x,y)。
lineTo() : 从当前点绘制一条直线到点(x,y)。
arc(x,y,r,sAngle,eAngle,counterclockwise) : 绘制一条指定半径的弧到点(x,y)。

二、用这些方法绘制复杂形状需遵循以下步骤

使用beginPath()方法开始绘制路径。
使用moveTo()、lineTo()、arc()、方法创建线段。
使用closePath()结束绘制并闭合形状(可选)。
使用stroke()或fill()绘制路径的外边框或填充形状。使用fill()会自动闭合所有未闭合路径。

三、弧arc()绘制说明
HTML5在canvas中绘制复杂形状附效果截图 
HTML5在canvas中绘制复杂形状附效果截图 
四、在canvas中绘制复杂形状

复制代码
代码如下:

<!--<!DOCTYPE> 声明必须是 HTML 文档的第一行,位于 <html> 标签之前。-->
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset = utf-8">
<title>HTML5</title>
<script type="text/javascript" charset = "utf-8">
//这个函数将在页面完全加载后调用
function pageLoaded()
{
//获取canvas对象的引用,注意tCanvas名字必须和下面body里面的id相同
var canvas = document.getElementById('tCanvas');
//获取该canvas的2D绘图环境
var context = canvas.getContext('2d');
//绘制代码将出现在这里
//绘制复杂性猪
//填充三角形
context.beginPath();
context.moveTo(10,120);//从(10,20开始)
context.lineTo(10,180);//表示从(10,120)开始,画到(10,180)结束
context.lineTo(110,150);//表示从(10,180)开始,画到(110,150)结束
context.fill();//闭合形状并且以填充方式绘制出来
//三角形的外边框
context.beginPath();
context.moveTo(140,160);//从点(140,160)开始
context.lineTo(140,220);
context.lineTo(40,190);
context.closePath(); //关闭路径
context.stroke(); //以空心填充
//一个复杂的多边形
context.beginPath();
context.moveTo(160,160);//从点(160,160)开始
context.lineTo(170,220);
context.lineTo(240,210);
context.lineTo(260,170);
context.lineTo(190,140);
context.closePath();
context.stroke();
//绘制弧
//绘制半圆弧
context.beginPath();
//在(100,300)处逆时针画一个半径为40,角度从0到180°的弧线
context.arc(100,300,40,0*Math.PI,1*Math.PI,true); //PI的弧度是180°
context.stroke();
//画一个实心圆
context.beginPath();
//在(100,300)处逆时针画一个半径为30,角度为0到360°的弧
context.arc(100,300,30,0*Math.PI,2*Math.PI,true);//2*Math.PI是360°
context.fill();
//画一个3/4弧
context.beginPath();
//在(200,300)处顺时针画一个半径为25,角度为0到270°的弧
context.arc(200,300,25,0*Math.PI,3/2*Math.PI,false);
context.stroke();
}
</script>
</head>
<body onload="pageLoaded();">
<canvas width = "400" height = "400" id = "tCanvas" style = "border:black 1px solid;">
<!--如果浏览器不支持则显示如下字体-->
提示:你的浏览器不支持<canvas>标签
</canvas>
</body>
</html>

五、绘制效果
HTML5在canvas中绘制复杂形状附效果截图
HTML / CSS 相关文章推荐
学做Bootstrap的第一个页面
May 15 HTML / CSS
使用CSS3的appearance属性改变任何元素的浏览器默认风格
Dec 24 HTML / CSS
深入浅析css3 border-image边框图像详解
Nov 24 HTML / CSS
基于CSS3制作立体效果导航菜单
Jan 12 HTML / CSS
CSS3移动端vw+rem不依赖JS实现响应式布局的方法
Jan 23 HTML / CSS
浅谈HTML5 defer和async的区别
Jun 07 HTML / CSS
HTML5: Web 标准最巨大的飞跃
Oct 17 HTML / CSS
HTML5 Canvas阴影使用方法实例演示
Aug 02 HTML / CSS
HTML5使用drawImage()方法绘制图像
Jun 23 HTML / CSS
html5中的input新属性range使用记录
Sep 05 HTML / CSS
使用HTML5中的contentEditable来将多行文本自动增高
Mar 01 HTML / CSS
css3带你实现3D转换效果
Feb 24 HTML / CSS
HTML5 在canvas中绘制矩形附效果图
Jun 23 #HTML / CSS
HTML5如何为形状图上颜色怎么绘制具有颜色和透明度的矩形
Jun 23 #HTML / CSS
HTML5 在canvas中绘制文本附效果图
Jun 23 #HTML / CSS
HTML5使用drawImage()方法绘制图像
Jun 23 #HTML / CSS
HTML5 CSS3打造相册效果附源码下载
Jun 16 #HTML / CSS
HTML5 CSS3实现一个精美VCD包装盒个性幻灯片案例
Jun 16 #HTML / CSS
HTML5调用手机摄像头拍照的实现思路及代码
Jun 15 #HTML / CSS
You might like
PHP session会话操作技巧小结
2016/09/27 PHP
extjs 学习笔记(三) 最基本的grid
2009/10/15 Javascript
js动态加载以及确定加载完成的代码
2011/07/31 Javascript
js 金额文本框实现代码
2012/02/14 Javascript
JS数组的赋值介绍
2014/03/10 Javascript
使用jquery组件qrcode生成二维码及应用指南
2015/02/22 Javascript
jQuery插件datepicker 日期连续选择
2015/06/12 Javascript
基于jquery实现表格无刷新分页
2016/01/07 Javascript
如何用angularjs制作一个完整的表格
2016/01/21 Javascript
基于javascript实现全屏漂浮广告
2016/03/31 Javascript
微信小程序 传值取值的几种方法总结
2017/01/16 Javascript
详解webpack性能优化——DLL
2017/10/20 Javascript
利用js给datalist或select动态添加option选项的方法
2018/01/25 Javascript
基于express中路由规则及获取请求参数的方法
2018/03/12 Javascript
React冒泡和阻止冒泡的应用详解
2020/08/18 Javascript
vue中h5端打开app(判断是安卓还是苹果)
2021/02/26 Vue.js
[02:14]完美“圣”典2016风云人物:xiao8专访
2016/12/01 DOTA
Python实现全局变量的两个解决方法
2014/07/03 Python
详解Python中列表和元祖的使用方法
2015/04/25 Python
python从入门到精通(DAY 3)
2015/12/20 Python
Python 实现文件的全备份和差异备份详解
2016/12/27 Python
详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数
2018/04/18 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
2018/11/14 Python
python实现抖音点赞功能
2019/04/07 Python
pyenv与virtualenv安装实现python多版本多项目管理
2019/08/17 Python
vim自动补全插件YouCompleteMe(YCM)安装过程解析
2019/10/21 Python
PIL包中Image模块的convert()函数的具体使用
2020/02/26 Python
在Tensorflow中实现leakyRelu操作详解(高效)
2020/06/30 Python
PatPat阿根廷:妈妈们的购物平台
2019/05/30 全球购物
金属材料工程个人求职的自我评价
2013/12/04 职场文书
中学教师管理制度
2014/01/14 职场文书
《鱼游到了纸上》教学反思
2014/02/20 职场文书
预备党员转正材料
2014/12/19 职场文书
公司酒会主持词
2015/07/02 职场文书
为什么说餐饮很难做,是因为你不了解这些新规则
2019/08/20 职场文书
健身房被搭讪?用python写了个小米计时器助人为乐
2021/06/08 Python