1.基础知识
canvas元素绘制图像的时候有两种方法,分别是
context.fill()//填充 context.stroke()//绘制边框
style:在进行图形绘制前,要设置好绘图的样式
context.fillStyle//填充的样式 context.strokeStyle//边框样式 context.lineWidth//图形边框宽度
context.arc(centerx圆心横左边,centery圆心纵坐标,radius半径,startingAngle起始弧度值,endingAngle结束弧度值,anticlockwise='false'顺时针默认false)
2.绘制非填充线段
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title></title> <link rel="stylesheet" href="http://r01.uzaicdn.com/content/v1/styles/subject.css"> <link rel="stylesheet" href="styles/lianxi.css"> <script src="http://r01.uzaicdn.com/content/v1/scripts/core.js"></script> <script src="scripts/lianxi.js"></script> <!--[if lt IE 9]><script src="https://r.uzaicdn.com/content/libs/html5shiv.js"></script><![endif]--> <!--[if IE 6]><script src="https://r.uzaicdn.com/content/libs/dd_belatedpng_0.0.8a-min.js" type="text/javascript"></script><script>DD_belatedPNG.fix('.png');</script><![endif]--> <style type="text/css"> .canvas{border: 1px solid #000;display: block;margin: 0 auto;margin-top: 50px;} </style> <script> window.onload=function(){ function draw(){ var canvas = document.getElementById('canvas'); if (canvas.getContext){ var ctx = canvas.getContext('2d'); canvas.width=300; canvas.height=300; ctx.beginPath(); //一个绘画开始 ctx.moveTo(50,50);//线段起点 ctx.lineTo(100,100);//终点1 ctx.lineTo(50,100);//终点2 ctx.lineTo(50,50);//终点3 ctx.lineWidth=5;//边框宽度 ctx.strokeStyle="red"; //边框样式 ctx.closePath(); //一个绘画结束 ctx.stroke();//绘制线段 }else{ alert('当前浏览器不支持,请更换浏览器'); } } draw(); } </script> <style tyrp="text/css"> canvas{ border: 1px solid black;margin: 0 auto;display: block;} </style> </head> <body> <canvas id="canvas">当前浏览器不支持,请更换浏览器</canvas> </body> </html>
3.绘制填充图形
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title></title> <link rel="stylesheet" href="http://r01.uzaicdn.com/content/v1/styles/subject.css"> <link rel="stylesheet" href="styles/lianxi.css"> <script src="http://r01.uzaicdn.com/content/v1/scripts/core.js"></script> <script src="scripts/lianxi.js"></script> <!--[if lt IE 9]><script src="https://r.uzaicdn.com/content/libs/html5shiv.js"></script><![endif]--> <!--[if IE 6]><script src="https://r.uzaicdn.com/content/libs/dd_belatedpng_0.0.8a-min.js" type="text/javascript"></script><script>DD_belatedPNG.fix('.png');</script><![endif]--> <style type="text/css"> .canvas{border: 1px solid #000;display: block;margin: 0 auto;margin-top: 50px;} </style> <script> window.onload=function(){ function draw(){ var canvas = document.getElementById('canvas'); if (canvas.getContext){ var ctx = canvas.getContext('2d'); canvas.width=300; canvas.height=300; ctx.beginPath(); //一个绘画开始 ctx.moveTo(50,50);//线段起点 ctx.lineTo(100,100);//终点1 ctx.lineTo(50,100);//终点2 ctx.lineTo(50,50);//终点3 ctx.fillStyle='red'; ctx.fill(); //边框添加 ctx.lineWidth=5;//边框宽度 ctx.strokeStyle="blue"; //边框样式 ctx.closePath(); //一个绘画结束 ctx.stroke();//绘制线段 }else{ alert('当前浏览器不支持,请更换浏览器'); } } draw(); } </script> <style tyrp="text/css"> canvas{ border: 1px solid black;margin: 0 auto;display: block;} </style> </head> <body> <canvas id="canvas">当前浏览器不支持,请更换浏览器</canvas> </body> </html>
4.绘制圆弧
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title></title> <link rel="stylesheet" href="http://r01.uzaicdn.com/content/v1/styles/subject.css"> <link rel="stylesheet" href="styles/lianxi.css"> <script src="http://r01.uzaicdn.com/content/v1/scripts/core.js"></script> <script src="scripts/lianxi.js"></script> <!--[if lt IE 9]><script src="https://r.uzaicdn.com/content/libs/html5shiv.js"></script><![endif]--> <!--[if IE 6]><script src="https://r.uzaicdn.com/content/libs/dd_belatedpng_0.0.8a-min.js" type="text/javascript"></script><script>DD_belatedPNG.fix('.png');</script><![endif]--> <style type="text/css"> canvas{border: 1px solid #000;display: block;margin: 0 auto;margin-top: 50px;} </style> <script> window.onload=function(){ function draw(){ var canvas = document.getElementById('canvas'); if (canvas.getContext){ var ctx = canvas.getContext('2d'); canvas.width=800; canvas.height=800; ctx.beginPath(); //开始一个新的绘画 ctx.lineWidth=5;//边框宽度 ctx.strokeStyle="red"; //边框样式 ctx.arc(100, 100, 30, 0, 1.5*Math.PI); ctx.closePath(); //一个绘画结束,如果绘画不是封闭的,就封闭起来 ctx.stroke();//绘制线段 ctx.beginPath(); //开始一个新的绘画 ctx.lineWidth=5;//边框宽度 ctx.strokeStyle="red"; //边框样式 ctx.arc(200, 100, 30, 0, 2*Math.PI); ctx.closePath(); //一个绘画结束,如果绘画不是封闭的,就封闭起来 ctx.stroke();//绘制线段 ctx.beginPath(); //开始一个新的绘画 ctx.lineWidth=5;//边框宽度 ctx.strokeStyle="red"; //边框样式 ctx.arc(300, 100, 30, 0, 0.5*Math.PI); ctx.closePath(); //一个绘画结束,如果绘画不是封闭的,就封闭起来 ctx.stroke();//绘制线段 ctx.beginPath(); //开始一个新的绘画 ctx.lineWidth=5;//边框宽度 ctx.strokeStyle="red"; //一个绘画结束,如果绘画不是封闭的,就封闭起来 ctx.arc(400, 100, 30, 0, 0.5*Math.PI,true);//注意:0*PI,0.5*PI,1*PI,1。5*PI,2*PI所占据的位置是固定的 ctx.closePath(); //一个绘画结束 ctx.stroke();//绘制线段 ctx.beginPath(); //开始一个新的绘画 ctx.fillStyle="red"; //边框样式 ctx.arc(500, 100, 30, 0, 1.5*Math.PI); ctx.closePath(); //一个绘画结束,如果绘画不是封闭的,就封闭起来 ctx.fill();//绘制填充 ctx.beginPath(); //开始一个新的绘画 ctx.lineWidth=5;//边框宽度 ctx.strokeStyle="red"; //边框样式 ctx.arc(600, 100, 30, 0, 1.5*Math.PI); ctx.stroke();//绘制线段 }else{ alert('当前浏览器不支持,请更换浏览器'); } } draw(); } </script> </head> <body> <canvas id="canvas">当前浏览器不支持,请更换浏览器</canvas> </body> </html>
5.绘制矩形
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title></title> <link rel="stylesheet" href="http://r01.uzaicdn.com/content/v1/styles/subject.css"> <link rel="stylesheet" href="styles/lianxi.css"> <script src="http://r01.uzaicdn.com/content/v1/scripts/core.js"></script> <script src="scripts/lianxi.js"></script> <!--[if lt IE 9]><script src="https://r.uzaicdn.com/content/libs/html5shiv.js"></script><![endif]--> <!--[if IE 6]><script src="https://r.uzaicdn.com/content/libs/dd_belatedpng_0.0.8a-min.js" type="text/javascript"></script><script>DD_belatedPNG.fix('.png');</script><![endif]--> <style type="text/css"> canvas{border: 1px solid #000;display: block;margin: 0 auto;margin-top: 50px;} </style> <script> window.onload=function(){ function draw(){ var canvas = document.getElementById('canvas'); if (canvas.getContext){ var ctx = canvas.getContext('2d'); canvas.width=500; canvas.height=500; ctx.fillRect(25,25,100,100);//绘制一个填充的矩形 ctx.clearRect(45,45,60,60);//清除指定矩形区域,让清除部分完全透明 ctx.strokeRect(50,50,50,50); //绘制一个矩形的边框 }else{ alert('当前浏览器不支持,请更换浏览器'); } } draw(); } </script> </head> <body> <canvas id="canvas">当前浏览器不支持,请更换浏览器</canvas> </body> </html>
6.绘制文本
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title></title> <link rel="stylesheet" href="http://r01.uzaicdn.com/content/v1/styles/subject.css"> <link rel="stylesheet" href="styles/lianxi.css"> <script src="http://r01.uzaicdn.com/content/v1/scripts/core.js"></script> <script src="scripts/lianxi.js"></script> <!--[if lt IE 9]><script src="https://r.uzaicdn.com/content/libs/html5shiv.js"></script><![endif]--> <!--[if IE 6]><script src="https://r.uzaicdn.com/content/libs/dd_belatedpng_0.0.8a-min.js" type="text/javascript"></script><script>DD_belatedPNG.fix('.png');</script><![endif]--> <style type="text/css"> canvas{border: 1px solid #000;display: block;margin: 0 auto;margin-top: 50px;} </style> <script> window.onload=function(){ function draw(){ var canvas = document.getElementById('canvas'); if (canvas.getContext){ var ctx = canvas.getContext('2d'); canvas.width=500; canvas.height=500; ctx.font = "48px serif"; ctx.fillText("Hello world", 10, 50); }else{ alert('当前浏览器不支持,请更换浏览器'); } } draw(); } </script> </head> <body> <canvas id="canvas">当前浏览器不支持,请更换浏览器</canvas> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title></title> <link rel="stylesheet" href="http://r01.uzaicdn.com/content/v1/styles/subject.css"> <link rel="stylesheet" href="styles/lianxi.css"> <script src="http://r01.uzaicdn.com/content/v1/scripts/core.js"></script> <script src="scripts/lianxi.js"></script> <!--[if lt IE 9]><script src="https://r.uzaicdn.com/content/libs/html5shiv.js"></script><![endif]--> <!--[if IE 6]><script src="https://r.uzaicdn.com/content/libs/dd_belatedpng_0.0.8a-min.js" type="text/javascript"></script><script>DD_belatedPNG.fix('.png');</script><![endif]--> <style type="text/css"> canvas{border: 1px solid #000;display: block;margin: 0 auto;margin-top: 50px;} </style> <script> window.onload=function(){ function draw(){ var canvas = document.getElementById('canvas'); if (canvas.getContext){ var ctx = canvas.getContext('2d'); canvas.width=500; canvas.height=500; ctx.font = "48px serif"; ctx.strokeText("Hello world", 10, 50); }else{ alert('当前浏览器不支持,请更换浏览器'); } } draw(); } </script> </head> <body> <canvas id="canvas">当前浏览器不支持,请更换浏览器</canvas> </body> </html>
7.图片操作
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title></title> <link rel="stylesheet" href="http://r01.uzaicdn.com/content/v1/styles/subject.css"> <link rel="stylesheet" href="styles/lianxi.css"> <script src="http://r01.uzaicdn.com/content/v1/scripts/core.js"></script> <script src="scripts/lianxi.js"></script> <!--[if lt IE 9]><script src="https://r.uzaicdn.com/content/libs/html5shiv.js"></script><![endif]--> <!--[if IE 6]><script src="https://r.uzaicdn.com/content/libs/dd_belatedpng_0.0.8a-min.js" type="text/javascript"></script><script>DD_belatedPNG.fix('.png');</script><![endif]--> <style type="text/css"> canvas{border: 1px solid #000;display: block;margin: 0 auto;margin-top: 50px;} </style> <script> window.onload=function(){ function draw(){ var canvas = document.getElementById('canvas'); if (canvas.getContext){ var ctx = canvas.getContext('2d'); canvas.width=500; canvas.height=500; var img=new Image(); img.src='http://gzdl.cooco.net.cn/files/down/test/imggzdl/312/15812.jpg' img.onload=function(){ ctx.drawImage(img,0,0); ctx.beginPath(); ctx.moveTo(30,96); ctx.lineTo(70,66); ctx.lineTo(103,76); ctx.lineTo(170,15); ctx.stroke(); } }else{ alert('当前浏览器不支持,请更换浏览器'); } } draw(); } </script> </head> <body> <canvas id="canvas">当前浏览器不支持,请更换浏览器</canvas> </body> </html>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持小牛知识库!
本文向大家介绍C++基础知识总结,包括了C++基础知识总结的使用技巧和注意事项,需要的朋友参考一下 不管是自我定位太高,还是职位层次太低,系统复习了一遍很久没有摸过的C++总是有好处的。总结如下: 一、new和malloc的区别 1、new和delete配对,释放数组需要用delete[]。new和delete实际上调用了malloc和free,另外调用了类的构造函数和析构函数。 2、malloc
Java 中存在 Runnable、Callable、Future、FutureTask 这几个与线程相关的类或者接口,在 Java 中也是比较重要的几个概念,我们通过下面的简单示例来了解一下它们的作用于区别。
本文向大家介绍Linux shell知识点汇总,包括了Linux shell知识点汇总的使用技巧和注意事项,需要的朋友参考一下 实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写
本文向大家介绍JSON相关知识汇总,包括了JSON相关知识汇总的使用技巧和注意事项,需要的朋友参考一下 JSON:JavaScript 对象表示法(JavaScript Object Notation) JSON 语法规则 数据在名称/值对中 数据由逗号分隔 花括号保存对象 方括号保存数组 JSON有6种类型的值: 对象、数组、字符串、数字、布尔值、null JSON对象是一个
本文向大家介绍你该知道的Gradle配置知识总结,包括了你该知道的Gradle配置知识总结的使用技巧和注意事项,需要的朋友参考一下 前言 本文主要介绍了关于Gradle配置的相关知识,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 参考链接:https://developer.android.com/studio/build/index.html 本片文章的内容全部参考自上面的链
本文向大家介绍Java容器ArrayList知识点总结,包括了Java容器ArrayList知识点总结的使用技巧和注意事项,需要的朋友参考一下 ArrayList 底层实现是数组,访问元素效率高 (查询快,插入、修改、删除元素慢) 与LinkedList相比,它效率高,但线程不安全。 ArrayList数组是一个可变数组,可以存取包括null在内的所有元素 每个ArrayList实例都有一个容量,