绘制矩形

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的绘图——绘制简单图形相关推荐

  1. [杨小米私房菜]炒青菜不出水的关键三步--豆豉鲮鱼油麦菜

    (原创图文转载仅限新浪博客其余途径请勿转载) 周末买了一盒鲮鱼罐头,感觉现在的罐头怎么也没有小时候的好吃了,也许是长大了,口味变了.剩了大半盒扔掉可惜,就和着做个豆豉鲮鱼油麦菜吧,其实油麦菜我还是觉得 ...

  2. html5 canvas 画阿迪达斯logo,HTML5 Canvas笔记——HTML5 Canvas绘图绘制太极图

    HTML5 Canvas绘图绘制太极图 太极图 * { padding: 0; margin: 0; } body { } #myCanvas { background-color: #eee; } ...

  3. CSS之Responsive设计的关键三步

    下面我们就通过这篇教程,帮助大家从三个步骤来了解和学习"Responsive"设计 第一步:Meta标签 大家都知道,现在智能手机上浏览web页面会让页面适应屏幕的大小,显示在屏幕 ...

  4. html绘制圆形和弧形的代码,通过HTML5 Canvas API绘制弧线和圆形的教程

    在html5中,CanvasRenderingContext2D对象也提供了专门用于绘制圆形或弧线的方法,请参考以下属性和方法介绍: JavaScript Code复制内容到剪贴板 arc(x, y, ...

  5. 保护工控系统网络安全的关键三步

    当前,工业控制系统(ICS)面临一系列数字威胁.其中两个方面尤其突出.一方面,数字攻击者在获得工业公司的非授权访问方面越来越在行.有些攻击者采用恶意软件,另一些诉诸于渔叉式网络钓鱼(或钓鲸)和其他社会 ...

  6. python画玫瑰图_三步学会用python画一个简单的玫瑰图

    玫瑰图实际是一种2维极坐标统计图,常用于表示气象.气候现象,如测站的风向频率等.用excel也可以画,但相对麻烦一些,所以当我们需要用到玫瑰图时,我们可以尝试用python来画.首先导入需要用到的包 ...

  7. 不去摄影棚,不用PS,三步快速证件照换底色最简单的方式

    证件照对照片的要求非常严格,不同用途的证件照,对照片底色的要求也不相同. 目前,底色要求主要有红.蓝.白三种.为了避免经常去花钱拍照,大家有必要学会 用PS进行底色更换,但是如果仅仅是换证件照底色,学 ...

  8. 不去摄影棚,不用PS三步快速证件照换底色最简单方式

    可以直接在线证件照换底色,今天发现的,分享给大家 http://www.yzcopen.com/img/idphoto 直接上传电子证件照,然后选择背景颜色即可 图片换底色了.

  9. python图形验证码识别_Python验证码识别:利用pytesser识别简单图形验证码

    一.探讨 识别图形验证码可以说是做爬虫的必修课,涉及到计算机图形学,机器学习,机器视觉,人工智能等等高深领域-- 简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形.以及利用计算机进行 ...

最新文章

  1. 【ajax 】同步、异步交互流程的区别
  2. 1.25亿用户以后,Netflix总结的系统高可用经验
  3. ASP.NET MVC随想录——创建自定义的Middleware中间件
  4. toad如何查看表字段备注(表字段的说明)
  5. WSUS离线导入更新包
  6. python中类的参数怎么传_如何将整个类作为参数传递给另一个类的方法
  7. ojdbc6手动装载
  8. Cesium 加载自定义DEM数据
  9. 记一次Android机顶盒破解工程
  10. 7月23日云栖精选夜读丨前端leader找我谈心:我是如何从刚毕业的前端菜鸟一步步成长为前端工程师的?...
  11. python如何拼读英语单词怎么写_Python简单的拼写检查
  12. Reasoning-RCNN 论文笔记
  13. 充电桩通过WiFi付费和管理方案
  14. PXE和Cobble实现自动装机
  15. Excel怎样恢复科学计数法显示的数据
  16. 二次开发crmeb增加实名认证 20220331
  17. 广州某IT公司HR招开发:“不加班的都是垃圾 ”
  18. BPF和Go:在Linux中内省的现代方式[译]
  19. JSF是什么?JSF的优点
  20. ConcurrentHashMap学习

热门文章

  1. offsetof 定义
  2. 申请注册google谷歌帐号/gmail邮箱账号验证手机号码遇到:此电话号码已用过太多次 或 此电话号码无法用于进行验证怎么解决?
  3. 儿童护眼灯哪个品牌比较好?适合儿童、青少年的平价护眼灯
  4. 《用户体验要素:以用户为中心的产品设计》读书笔记
  5. 2021世界燕窝展|上海燕窝展|滋补品展资讯-健康燕窝行业未来趋势分析
  6. ARM® Cortex®-M上的Trace跟踪方案
  7. war3_WAR文件与带有嵌入式服务器的Java应用程序
  8. Number类型详解
  9. Makefile中的常用函数——wildcard,patsubst,filter
  10. 文件资源管理器历史记录清除