html绘制图形的关键三步,基于HTML5的绘图——绘制简单图形
绘制矩形
HTML5中实现绘制矩形的效果可以调用上下对象的三个函数fillRect()、strokeRect()和clearRect()。这些函数的语法格式如下所示:
context.fillRect(x,y,width,heigth);//绘制矩形,以当前的fillStyle来填充
context.strokeRect(x,height);//绘制矩形,以当前的strokeStyle来填充
context.clearRect(x,height);//清除指定区域的像素
上述语法中都包含四个参数,第一个参数表示矩形起点的横坐标;第二个参数表示矩形起点的纵坐标;第三个参数表示矩形的宽度;第四个参数表示矩形的高度;坐标原点是canvas画布的左上角。
绘制矩形常用属性fillStyle和strokeStyle。fillStyle表示填充样式,在该属性中可以设置填充的颜色值;strokeStyle表示图形边框的样式,在该属性中可以设置边框的颜色值。另外这两个属性除了可以设置css外,还可以分别是图案和颜色渐变。
(1)添加canvas元素
(2)页面加载时直接调用脚本
function AddJuxing1(){
var canvas = document.getElementById("addJu1");
if(canvas && canvas.getContext){
var context = canvas.getContext("2d");
context.fillStyle="yellow";
context.strokeStyle="green";
context.lineWidth=1;
context.fillRect(30,100,200,100);
context.strokeRect(30,100);
}
}
window.addEventListener("load",AddJuxing1,true);
绘制直线
想要绘制直线需要使用路径,同绘制矩形一样,绘制开始时需要获取图形上下文对象。绘制矩形之外的其他图形时常用函数如下所示
beginPath():开始创建路径
moveTo(x,y):不绘制,只是将当前的位置移动到新的目标坐标,并且作为线条开始点
lineTo(x,y):绘制线条到指定的目标坐标(x,y),且在两个坐标之间画一条直线
stroke():绘制图形的边框
fill():填充一个实心图形,当调用该方法时开放的路径会自动闭合,而无需调用closePath函数
closePath():关闭路径
使用上面的函数绘制图形时,首先使用路径勾勒图形轮廓,然后设置颜色进行绘制,具体步骤如下所示:
(1)调用beginPath()函数创建路径
(2)创建图形的路径
(3)调用closePath函数关闭路径,这一步不是必须的
(4)设定绘制样式,然后调用fill()或stroke()函数绘制路径
下面通过一个简单的示例演示如何使用上述函数绘制直线
(1)页面中那个添加三个canvas元素,分别用于绘制不同的直线
(2)页面加载时调用javascript脚本
function addzhi1(){
var canvas = document.getElementById("addzhi1");
if(canvas && canvas.getContext){
var context = canvas.getContext("2d");
context.beginPath();//开始路径
context.lineWidth=1;//设置直线宽度为1
context.moveTo(20,100);//设置坐标起点
context.lineTo(150,100);//设置目标坐标
context.stroke();//调用stroke()函数绘制
}
}
function addzhi2(){
var canvas = document.getElementById("addzhi2");
if(canvas && canvas.getContext){
var context = canvas.getContext("2d");
context.beginPath();//开始路径
context.lineWidth=2;//设置直线宽度为1
context.moveTo(160,50);//设置坐标起点
context.lineTo(50,100);//设置目标坐标
context.lineTo(160,185);//设置目标坐标
context.stroke();//调用stroke()函数绘制
}
}
function addzhi3(){
var canvas = document.getElementById("addzhi3");
if(canvas && canvas.getContext){
var context = canvas.getContext("2d");
context.beginPath();//开始路径
context.lineWidth=3;//设置直线宽度为1
context.moveTo(160,185);//设置目标坐标
context.fill();//调用fill()函数绘制
}
}
window.addEventListener("load",addzhi1,true);
window.addEventListener("load",addzhi2,addzhi3,true);
(3)运行结果如下图所示:
绘制三角形
对上面的案例已经可以看出,绘制三角形只需将三个点组成的路径闭合即可,在上面的案例中,第二个canvas元素的脚本中添加context.lineTo(160,50),运行结果如下所示:
绘制圆形
使用canvas API中上下文对象的函数除了可以绘制直线、矩形、三角形外,还可以绘制圆形,绘制圆形时使用arc()函数,该函数基本语法如下所示:
context.arc(x,radius,startAngle,endAngle,anticlockwise);
上述代码中arc()函数主要包括六个参数,前两个参数x和y分别表示绘制圆形的起点横坐标和纵坐标;radius表示绘制圆形的半径;startAngle表示开始角度;endAngle表示结束角度;anticlockwise表示是否按照顺时针反向进行绘制
在canvas元素的API中绘制半径与弧时所指定的参数为开始弧度与结束弧度,如果习惯使用角度,可以使用如下方法将弧度转换为角度;
var radians = degress*180/Math.PI;
Math.PI即π,表示的角度为180°
注:arc()函数不仅可以绘制圆形,也可以用来绘制圆弧。使用时必须指定开始角度与结束角度,这两个参数据诶的那个了弧度。anticlockwise参数为一个布尔值的参数,当参数值为true时表示按照逆时针方向绘制,否则为顺时针方向绘制。
下面一个示例使用canvas元素及API中的常用内置函数实现圆形和圆弧的简单绘制,基本步骤如下所示:
(1)添加四个canvas元素,分别用来显示不同的圆形和圆弧
(2)页面加载时调用javascript脚本
function getcontext(id){
var canvas = document.getElementById(id);
if(canvas && canvas.getContext){
var context = canvas.getContext("2d");
return context;
}
}
function add1(){
var context = getcontext("add1");
context.beginPath();
context.arc(80,80,60,Math.PI,Math.PI*2,true);
context.stroke();
}
function add2(){
var context = getcontext("add2");
context.beginPath();
context.arc(80,(Math.PI*2/4),true);
context.fill();
}
function add3(){
var context = getcontext("add3");
context.beginPath();
context.arc(80,(Math.PI*2/4)*3,false);
context.stroke();
}
function add4(){
var context = getcontext("add4");
context.beginPath();
context.strokeStyle="blue";
context.arc(80,false);
context.stroke();
}
window.addEventListener("load",add1,add2,add3,add4,true);
(3)运行结果如下所示
html绘制图形的关键三步,基于HTML5的绘图——绘制简单图形相关推荐
- [杨小米私房菜]炒青菜不出水的关键三步--豆豉鲮鱼油麦菜
(原创图文转载仅限新浪博客其余途径请勿转载) 周末买了一盒鲮鱼罐头,感觉现在的罐头怎么也没有小时候的好吃了,也许是长大了,口味变了.剩了大半盒扔掉可惜,就和着做个豆豉鲮鱼油麦菜吧,其实油麦菜我还是觉得 ...
- html5 canvas 画阿迪达斯logo,HTML5 Canvas笔记——HTML5 Canvas绘图绘制太极图
HTML5 Canvas绘图绘制太极图 太极图 * { padding: 0; margin: 0; } body { } #myCanvas { background-color: #eee; } ...
- CSS之Responsive设计的关键三步
下面我们就通过这篇教程,帮助大家从三个步骤来了解和学习"Responsive"设计 第一步:Meta标签 大家都知道,现在智能手机上浏览web页面会让页面适应屏幕的大小,显示在屏幕 ...
- html绘制圆形和弧形的代码,通过HTML5 Canvas API绘制弧线和圆形的教程
在html5中,CanvasRenderingContext2D对象也提供了专门用于绘制圆形或弧线的方法,请参考以下属性和方法介绍: JavaScript Code复制内容到剪贴板 arc(x, y, ...
- 保护工控系统网络安全的关键三步
当前,工业控制系统(ICS)面临一系列数字威胁.其中两个方面尤其突出.一方面,数字攻击者在获得工业公司的非授权访问方面越来越在行.有些攻击者采用恶意软件,另一些诉诸于渔叉式网络钓鱼(或钓鲸)和其他社会 ...
- python画玫瑰图_三步学会用python画一个简单的玫瑰图
玫瑰图实际是一种2维极坐标统计图,常用于表示气象.气候现象,如测站的风向频率等.用excel也可以画,但相对麻烦一些,所以当我们需要用到玫瑰图时,我们可以尝试用python来画.首先导入需要用到的包 ...
- 不去摄影棚,不用PS,三步快速证件照换底色最简单的方式
证件照对照片的要求非常严格,不同用途的证件照,对照片底色的要求也不相同. 目前,底色要求主要有红.蓝.白三种.为了避免经常去花钱拍照,大家有必要学会 用PS进行底色更换,但是如果仅仅是换证件照底色,学 ...
- 不去摄影棚,不用PS三步快速证件照换底色最简单方式
可以直接在线证件照换底色,今天发现的,分享给大家 http://www.yzcopen.com/img/idphoto 直接上传电子证件照,然后选择背景颜色即可 图片换底色了.
- python图形验证码识别_Python验证码识别:利用pytesser识别简单图形验证码
一.探讨 识别图形验证码可以说是做爬虫的必修课,涉及到计算机图形学,机器学习,机器视觉,人工智能等等高深领域-- 简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形.以及利用计算机进行 ...
最新文章
- 【ajax 】同步、异步交互流程的区别
- 1.25亿用户以后,Netflix总结的系统高可用经验
- ASP.NET MVC随想录——创建自定义的Middleware中间件
- toad如何查看表字段备注(表字段的说明)
- WSUS离线导入更新包
- python中类的参数怎么传_如何将整个类作为参数传递给另一个类的方法
- ojdbc6手动装载
- Cesium 加载自定义DEM数据
- 记一次Android机顶盒破解工程
- 7月23日云栖精选夜读丨前端leader找我谈心:我是如何从刚毕业的前端菜鸟一步步成长为前端工程师的?...
- python如何拼读英语单词怎么写_Python简单的拼写检查
- Reasoning-RCNN 论文笔记
- 充电桩通过WiFi付费和管理方案
- PXE和Cobble实现自动装机
- Excel怎样恢复科学计数法显示的数据
- 二次开发crmeb增加实名认证 20220331
- 广州某IT公司HR招开发:“不加班的都是垃圾 ”
- BPF和Go:在Linux中内省的现代方式[译]
- JSF是什么?JSF的优点
- ConcurrentHashMap学习
热门文章
- offsetof 定义
- 申请注册google谷歌帐号/gmail邮箱账号验证手机号码遇到:此电话号码已用过太多次 或 此电话号码无法用于进行验证怎么解决?
- 儿童护眼灯哪个品牌比较好?适合儿童、青少年的平价护眼灯
- 《用户体验要素:以用户为中心的产品设计》读书笔记
- 2021世界燕窝展|上海燕窝展|滋补品展资讯-健康燕窝行业未来趋势分析
- ARM® Cortex®-M上的Trace跟踪方案
- war3_WAR文件与带有嵌入式服务器的Java应用程序
- Number类型详解
- Makefile中的常用函数——wildcard,patsubst,filter
- 文件资源管理器历史记录清除