canvas基础学习
来源:互联网 发布:led屏幕软件下载 编辑:程序博客网 时间:2024/06/06 13:14
1.Canvas元素
canvas 元素用于在网页上绘制图形。HTML5 的 canvas 元素使用 JavaScript 在网页上绘制2D图像。
在矩形区域的画布上,控制其每一像素,JavaScript 来绘制 2D图形,逐像素进行渲染。可以通过多种方法使用canvas 元素绘制路径、矩形、圆形、字符以及添加图像。
2.创建canvas
canvas 元素用于在网页上绘制图形。HTML5 的 canvas 元素使用 JavaScript 在网页上绘制2D图像。
在矩形区域的画布上,控制其每一像素,JavaScript 来绘制 2D图形,逐像素进行渲染。可以通过多种方法使用canvas 元素绘制路径、矩形、圆形、字符以及添加图像。
2.创建canvas
<canvas id="myCanvas" width="300" height="300"></canvas>
3.绘制
canvas 元素本身是没有绘图能力的。所有的绘制工作必须在 JavaScript 内部完成
<!DOCTYPE html><html><head><meta charset="utf-8"><title>demo</title></head><style type="text/css">.myCanvas{border:1px solid #d3d3d3;}</style><body><canvas id="myCanvas" class="myCanvas" width="300" height="150"></canvas></body></html><script type="text/javascript">var c=document.getElementById("myCanvas");var ctx=c.getContext("2d");ctx.rect(20,20,150,100);ctx.stroke();</script>
4.使用canvas制作时钟案例
canvasAPI地址:点击打开链接
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>canvas clock</title> </head> <style type="text/css"> div{ text-align: center; margin-top: 250px;}#clock{border:1px solid #d3d3d3;}</style> <body> <div> <canvas id="clock" width="200" height="200"></canvas> </div></body> </html> <script type="text/javascript"> var c=document.getElementById("clock"); var ctx=c.getContext("2d");var width=ctx.canvas.width;var height=ctx.canvas.height;var r=width / 2;//背景 function drawBackGround(){ //保存当前状态 ctx.save(); ctx.translate(r,r); ctx.beginPath(); ctx.lineWidth=10; ctx.arc(0, 0, r-5, 0, 2 * Math.PI, false); ctx.stroke(); var hourNumbers = [3,4,5,6,7,8,9,10,11,12,1,2]; ctx.font='18px Arial'; ctx.textAlign='center'; ctx.textBaseline = 'middle'; hourNumbers.forEach(function(number,i){ var rad = 2 * Math.PI / 12 * i; var x = Math.cos(rad) * (r - 30); var y = Math.sin(rad) * (r - 30); ctx.fillText(number, x, y); }) for(var i=0; i<60; i++){ var rad = 2 * Math.PI / 60 * i; var x = Math.cos(rad) * (r - 18); var y = Math.sin(rad) * (r - 18); ctx.beginPath(); if(i%5==0){ ctx.fillStyle="#000" ctx.arc(x,y,2,0,2 * Math.PI, false); }else{ ctx.fillStyle="#eee" ctx.arc(x,y,2,0,2 * Math.PI, false); } ctx.fill(); }}//时针function drawHour(hour,minute){ //保存当前状态 ctx.save(); ctx.beginPath(); var rad = 2 * Math.PI / 12 * hour; var mrad = 2 * Math.PI / 12 / 60 * minute; ctx.rotate(rad+mrad); ctx.lineWidth = 6; ctx.lineCap = 'round'; ctx.moveTo(0, 10); ctx.lineTo(0,-r / 2) ctx.stroke(); //回到之前状态 ctx.restore();}//分针function drawMinute(minute){ ctx.save(); ctx.beginPath(); var rad= 2 * Math.PI / 60 * minute; ctx.rotate(rad); ctx.lineWidth = 3; ctx.lineCap='round'; ctx.moveTo(0,10); ctx.lineTo(0,-r + 30); ctx.stroke();ctx.restore();}//秒针function drawSecond(second){ ctx.save(); ctx.beginPath(); ctx.fillStyle='#c14543'; var rad= 2 * Math.PI / 60 * second; ctx.rotate(rad); ctx.moveTo(-2,20); ctx.lineTo(2,20); ctx.lineTo(1, -r+18); ctx.lineTo(-1, -r+18); ctx.fill(); ctx.restore();}//中心原点function drawDot(){ ctx.beginPath(); ctx.fillStyle = '#fff'; ctx.arc(0,0,3,0,2*Math.PI,false); ctx.fill();}//获取当前时间绘制时钟function draw(){ //清除内容 ctx.clearRect(0,0,width,height);var now=new Date();var hour=now.getHours();var minute =now.getMinutes();var second=now.getSeconds();drawBackGround();drawHour(hour,minute)drawMinute(minute);drawSecond(second);drawDot(); //回到原点为(0,0)的状态ctx.restore();}draw();setInterval(draw,1000);</script>
0 0
- canvas 一基础学习
- canvas基础学习
- Canvas学习之基础一
- canvas学习笔记-1(基础篇)
- Canvas基础
- Canvas基础
- Canvas基础
- canvas基础
- canvas 基础
- canvas-基础
- canvas 基础
- canvas基础
- canvas基础
- Canvas基础
- canvas基础
- canvas基础
- HTML5 学习(一 CANVAS 的基础知识点)
- canvas基础学习(三)-曲线的绘制
- EffectiveJava第43条
- java再复习——Collection体系
- 解析XML获取节点内容
- ASP.NET MVC一次删除多笔记录 V2.0
- minimalmodbus 安裝
- canvas基础学习
- POJ 1692 Crossed Matchings
- Kafka实战-实时日志统计流程
- 服务器端API接口安全性分析
- LNMP一键安装包状态管理命令
- Python批量下载网页中的表格存储到CSV文件中
- lock compatibility / Lock Granularity and Hierarchies
- 【Android】Android Crash之异常信息反馈机制
- 学习Linux系统及服务器注意事项