<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{ background:#000;}
#c1{ background:#fff;}
</style>
</head>
<body>
<canvas id="c1" width="800" height="600"><span style="color:red;">您的浏览器不支持此标签! 请更换浏览器!</span></canvas>
</body>
</html>
canvas绘图
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{ background:#000;}
#c1{ background:#fff;}
</style>
<script>
window.onload = function(){
var oC = document.getElementById('c1');
//获取绘图接口
var gd = oC.getContext("2d");
gd.moveTo(140,46);
gd.lineTo(271,130);
gd.lineTo(187,223);
gd.lineTo(123,169);
gd.lineTo(140,46);
//绘制的路径
gd.lineWidth = "10";//设置或返回当前线条的宽度,以像素计。 不需要单位
gd.strokeStyle = "green";//strokeStyle 属性设置或返回用于笔触的颜色、渐变或模式。
gd.fillStyle = "red";
gd.fill();
//绘制
gd.stroke();
}
</script>
</head>
<body>
<canvas id="c1" width="800" height="600"><span style="color:red;">您的浏览器不支持此标签! 请更换浏览器!</span></canvas>
</body>
</html>
canvas——注意事项一
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{ background:#000;}
#c1{ background:#fff;}
</style>
<script>
window.onload = function(){
var oC = document.getElementById("c1");
var gd = oC.getContext("2d");
//最后有开始 和结束 begin/closePath
gd.beginPath();//开始绘制路径
gd.moveTo(140,46);
gd.lineTo(271,130);
gd.lineTo(187,223);
gd.lineTo(123,169);
gd.lineTo(140,46);
gd.closePath();//结束路径
gd.lineWidth = "10";
gd.strokeStyle = "green";
gd.fillStyle = "red";
gd.fill();//填充
gd.stroke();//绘制
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="600"></canvas>
</body>
</html>
canvas——注意事项二
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{ background:#000;}
#c1{ background:#fff;}
</style>
<script>
window.onload = function(){
var oC = document.getElementById("c1");
var gd = oC.getContext("2d");
//最后有开始 和结束 begin/closePath
gd.beginPath();//开始绘制路径
gd.moveTo(140,46);
gd.lineTo(271,130);
gd.lineTo(187,223);
gd.lineTo(123,169);
//gd.lineTo(140,46);
gd.closePath();//结束路径—— 自动闭合路径
gd.lineWidth = "10";
gd.strokeStyle = "green";
gd.fillStyle = "red";
gd.fill();//填充
gd.stroke();//绘制
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="600"></canvas>
</body>
</html>
canvas——注意事项三
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{ background:#000;}
#c1{ background:#fff;}
</style>
<script>
window.onload = function(){
var oC = document.getElementById("c1");
var gd = oC.getContext("2d");
//最后有开始 和结束 begin/closePath
gd.beginPath();//开始绘制路径
gd.moveTo(140,46);
gd.lineTo(271,130);
gd.lineTo(187,223);
gd.lineTo(123,169);
//gd.lineTo(140,46);
gd.closePath();//结束路径—— 自动闭合路径
gd.lineWidth = "30";//内外扩充
gd.strokeStyle = "green";
gd.fillStyle = "red";
gd.stroke();//绘制
gd.fill();//填充 —— 有顺序 后面会覆盖前面的
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="600"></canvas>
</body>
</html>
canvas——注意事项四
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{ background:#000;}
#c1{ background:#fff;}
</style>
<script>
window.onload = function(){
var oC = document.getElementById("c1");
var gd = oC.getContext("2d");
gd.beginPath();
gd.moveTo(100,100);
gd.lineTo(100,300);
gd.strokeStyle = "red";
gd.lineWidth = "10";
gd.closePath();
gd.stroke();
gd.beginPath();// 重新开始绘制一条路径
gd.moveTo(300,100);
gd.lineTo(300,300);
gd.closePath();
gd.strokeStyle = "green";
gd.lineWidth = "20";
gd.stroke();
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="600"></canvas>
</body>
</html>
canvas——注意事项五
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{ background:#000;}
#c1{ background:#fff;/*width:800px; height:600px;*/}
</style>
<script>
window.onload = function(){
var oC = document.getElementById("c1");
oC.width = "800";
oC.height = "600";
var gd = oC.getContext("2d");
gd.beginPath();//开始绘制路径
gd.moveTo(140,46);
gd.lineTo(271,130);
gd.lineTo(187,223);
gd.lineTo(123,169);
gd.lineTo(140,46);
gd.closePath();//结束路径
gd.stroke();
};
</script>
</head>
<body>
<canvas id="c1"></canvas>
</body>
</html>
canvas简易绘图板
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{ background:#000; text-align:center;}
#c1{ background:#fff;}
</style>
<script>
window.onload = function(){
var oC = document.getElementById("c1");
var gd = oC.getContext("2d");
oC.onmousedown = function(ev){
var x = ev.clientX - oC.offsetLeft;
var y = ev.clientY - oC.offsetTop;
gd.beginPath();
gd.moveTo(x,y);
document.onmousemove = function(ev){
var x = ev.clientX - oC.offsetLeft;
var y = ev.clientY - oC.offsetTop;
gd.lineTo(x,y);
//gd.closePath();
gd.stroke();
};
document.onmouseup = function(){
document.onmousemove = null;
document.onmouseup = null;
};
return false;
};
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="600"></canvas>
</body>
</html>
canvas柱形图报表
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{ background:#000; text-align:center;}
#c1{ background:#fff;padding:10px;}
</style>
<script>
window.onload = function(){
var oC = document.getElementById("c1");
var gd = oC.getContext("2d");
var arr = [100,200,150,220,300,180,240];
//定义初始值
var space = oC.width/(arr.length*4 - 1);
var w = 3*space;
//最大值
var iMax = Math.max(...arr);
//每个柱子的高度
var arrH = [];
for(var i = 0; i < arr.length; i++){
arrH.push(arr[i]/iMax*oC.height);
}
//绘制矩形
for(var i = 0; i < arrH.length; i++){
var r = parseInt(Math.random()*256);
var g = parseInt(Math.random()*256);
var b = parseInt(Math.random()*256);
gd.fillStyle = "rgb("+r+","+g+","+b+")";
gd.fillRect((space+w)*i,oC.height-arrH[i],w,arrH[i]);
gd.strokeRect((space+w)*i,oC.height-arrH[i],w,arrH[i]);
}
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="600"></canvas>
</body>
</html>
用canvas画一个矩形
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>canvas入门</title>
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
window.onload = function(){
var oC = document.getElementById('c1');
//1 获取绘图接口
var gd = oC.getContext("2d");
//2 开始绘制路径
gd.beginPath();
//3 绘制 移动一个点 200*100
gd.moveTo(100,100);
gd.lineTo(300,100);
gd.lineTo(300,200);
gd.lineTo(100,200);
gd.closePath();
//绘制图形
gd.stroke();
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
用canvas画一个弧
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
function d2a(n){
return n*Math.PI/180;
}
window.onload = function(){
var oC = document.getElementById("c1");
//1 获取绘图接口
var gd = oC.getContext("2d");
//arc(x, y, radius, startAngle, endAngle, counterclockwise)
//x, y 描述弧的圆形的圆心的坐标。
//radius 描述弧的圆形的半径。
//startAngle, endAngle 开始和结束的角度
//逆时针为TRUE;顺时针为false
gd.arc(200,200,150,d2a(0),d2a(60),false);
gd.stroke();
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
用canvas画一个圆形进度条(canvas绘制圆形进度条)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>画圆</title>
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
function d2a(n){
return n*Math.PI/180;
}
window.onload = function(){
var oC = document.getElementById('c1');
//1 获取绘图接口
var gd = oC.getContext("2d");
var d = 0;
setInterval(function(){
gd.clearRect(0,0,oC.width,oC.height);
gd.beginPath();
gd.arc(200,200,150,d2a(0),d2a(d++),false);
gd.stroke();
},16);
}
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
canvas绘制圆形变色进度条
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
function d2a(n){
return n*Math.PI/180;
}
window.onload = function(){
var oC = document.getElementById('c1');
//1 获取绘图接口
var gd = oC.getContext("2d");
var cx = 300;
var cy = 200;
var r = 150;
var d = 0;
var h = 60;
gd.lineWidth = "15";
gd.font = h + "px kaiti";
gd.fillStyle = "red";
var timer = setInterval(function(){
gd.clearRect(0,0,oC.width,oC.height);
gd.beginPath();
gd.arc(cx,cy,r,d2a(0),d2a(d++),false);
gd.strokeStyle = "rgba("+255*d/360+",0,0,1)";
gd.stroke();
//写文字
var str = Math.floor(d/360*100)+"%";
var w = gd.measureText(str).width;
gd.fillText(str,cx-w/2,cy+h/2);
if (d > 360) {
clearInterval(timer);
}
},16);
}
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
canvas绘制文字
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
function d2a(n){
return n*Math.PI/180;
}
window.onload = function(){
var oC = document.getElementById("c1");
//1 获取绘图接口
var gd = oC.getContext("2d");
//2 fillStyle 属性设置或返回用于填充绘画的颜色、渐变或模式。
//语法 context.fillStyle=color|gradient|pattern;
//颜色/渐变对象/用于填充绘图的 pattern 对象
gd.fillStyle = "blue";
//font 属性设置或返回画布上文本内容的当前字体属性。
//语法:context.font="italic small-caps bold 12px arial";
//ctx.font="40px Arial";
gd.font = "60px kaiti";
//文字 y轴 以文字的左下角为准
//fillText() 方法在画布上绘制填色的文本。文本的默认颜色是黑色。
//语法:context.fillText(text,x,y,maxWidth);
//text 规定在画布上输出的文本。
//x 开始绘制文本的 x 坐标位置(相对于画布)。
//y 开始绘制文本的 y 坐标位置(相对于画布)。
//maxWidth 可选。允许的最大文本宽度,以像素计。
gd.fillText("和派孔明",100,100);
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
canvas绘制文字
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
function d2a(n){
return n*Math.PI/180;
}
window.onload = function(){
var oC = document.getElementById("c1");
//1 获取绘图接口
var gd = oC.getContext("2d");
var str = "和派孔明"
gd.fillStyle = "red";
gd.font = "60px kaiti";
//在画布上输出文本之前,检查字体的宽度
//语法:context.measureText(text).width;
var w = gd.measureText(str).width;
//文字 y轴 以文字的左下角为准
//context.fillText(text,x,y,maxWidth);
//text x 开始绘制文本的 x 坐标位置(相对于画布)。 y 开始绘制文本的 x 坐标位置(相对于画布)。
//maxWidth 可选。允许的最大文本宽度,以像素计。
gd.fillText(str,0,60);
gd.fillText(str,oC.width/2 - w/2,60);
gd.fillText(str,oC.width-w,60);
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
canvas绘制部分饼图
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
function d2a(n){
return n*Math.PI/180;
}
window.onload = function(){
var oC = document.getElementById('c1');
//1 获取绘图接口
var gd = oC.getContext("2d");
var cx = 300;
var cy = 230;
var r = 150;
gd.beginPath();
gd.moveTo(cx,cy);
gd.arc(cx,cy,r,0,d2a(120),false);
gd.closePath();
gd.fillStyle = "red";
gd.fill();
gd.stroke();
}
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
canvas绘制完整饼图
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
function d2a(n){
return n*Math.PI/180;
}
window.onload = function(){
var oC = document.getElementById('c1');
//1 获取绘图接口
var gd = oC.getContext("2d");
var cx = 300;
var cy = 230;
var r = 150;
var arr = [200,300,120,80,240,198];
var sum = arr.reduce(function(n1,n2){
return n1 + n2;
});
var arrPie = [];
arr.forEach(function(n){
arrPie.push(n/sum*360);
});
var d = 0;
arrPie.forEach(function(n){
gd.beginPath();
gd.moveTo(cx,cy);
gd.arc(cx,cy,r,d2a(d),d2a(d+n),false);
gd.fillStyle = "rgb("+parseInt(Math.random()*256)+","+parseInt(Math.random()*256)+","+parseInt(Math.random()*256)+")";
gd.fill();
gd.closePath();
d +=n;
});
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
canvas鼠标移入移出鼠标/矩形区域
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
function d2a(n){
return n*Math.PI/180;
}
window.onload = function(){
var oC = document.getElementById("c1");
//1 获取绘图接口
var gd = oC.getContext("2d");
var x = 200;
var y = 100;
var w = 200;
var h = 100;
gd.fillStyle = "#ccc";
gd.fillRect(x,y,w,h);
gd.strokeRect(x,y,w,h);
oC.onmousemove = function(ev){
if(ev.clientX >= x && ev.clientX <= x+w && ev.clientY >= y && ev.clientY <= y+h){
console.log("移入");
gd.fillStyle = "red";
gd.fillRect(x,y,w,h);
} else {
console.log("移出");
gd.fillStyle = "#ccc";
gd.fillRect(x,y,w,h);
}
};
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
canvas鼠标移入移出鼠标/圆形区域
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
function d2a(n){
return n*Math.PI/180;
}
window.onload = function(){
var oC = document.getElementById("c1");
//1 获取绘图接口
var gd = oC.getContext("2d");
var cx = 300;
var cy = 200;
var r = 100;
gd.beginPath();
gd.arc(cx,cy,r,d2a(0),d2a(360),false);
gd.closePath();
gd.fillStyle = "#ccc";
gd.fill();
gd.stroke();
oC.onmousemove = function(ev){
var a = ev.clientX - cx;
var b = ev.clientY - cy;
var dis = Math.sqrt(a*a + b*b);
gd.clearRect(0,0,oC.width,oC.height);
if(dis <= r){//移入
console.log("移入");
gd.fillStyle = "red";
gd.fill();
gd.stroke();
} else {//移出
console.log("移出");
gd.fillStyle = "#ccc";
gd.fill();
gd.stroke();
}
};
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
canvas拖拽/矩形
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
function d2a(n){
return n*Math.PI/180;
}
window.onload = function(){
var oC = document.getElementById("c1");
//1 获取绘图接口
var gd = oC.getContext("2d");
var x = 200;
var y = 100;
var w = 200;
var h = 100;
gd.fillStyle = "#ccc";
gd.fillRect(x,y,w,h);
gd.strokeRect(x,y,w,h);
oC.onmousedown = function(ev){
var disX = ev.clientX - x;
var disY = ev.clientY - y;
if(ev.clientX >= x && ev.clientX <= x+w && ev.clientY >= y && ev.clientY <= y+h){
document.onmousemove = function(ev){
gd.clearRect(0,0,oC.width,oC.height);
x = ev.clientX - disX;
y = ev.clientY - disY;
gd.fillStyle = "#ccc";
gd.fillRect(x,y,w,h);
gd.strokeRect(x,y,w,h);
};
}
document.onmouseup = function(){
document.onmousemove = null;
document.onmouseup = null;
};
return false;
};
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
canvas拖拽/圆形
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
function d2a(n){
return n*Math.PI/180;
}
window.onload = function(){
var oC = document.getElementById("c1");
//1 获取绘图接口
var gd = oC.getContext("2d");
var cx = 300;
var cy = 200;
var r = 100;
gd.beginPath();
gd.arc(cx,cy,r,d2a(0),d2a(360),false);
gd.closePath();
gd.fillStyle = "#ccc";
gd.fill();
gd.stroke();
oC.onmousedown = function(ev){
var a = ev.clientX - cx;
var b = ev.clientY - cy;
var dis = Math.sqrt(a*a + b*b);
if(dis <= r){//移入
var disX = ev.clientX - cx;
var disY = ev.clientY - cy;
document.onmousemove = function(ev){
gd.clearRect(0,0,oC.width,oC.height);
cx = ev.clientX - disX;
cy = ev.clientY - disY;
gd.beginPath();
gd.arc(cx,cy,r,d2a(0),d2a(360),false);
gd.closePath();
gd.fillStyle = "#ccc";
gd.fill();
gd.stroke();
};
}
document.onmouseup = function(){
document.onmousemove = null;
document.onmouseup = null;
};
return false;
};
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
canvas渐变
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
window.onload = function(){
var oC = document.getElementById("c1");
var gd = oC.getContext("2d");
var oLinear = gd.createLinearGradient(100,100,400,300);
oLinear.addColorStop(0,"red");
oLinear.addColorStop(0.6,"yellow");
oLinear.addColorStop(1,"green");
gd.fillStyle = oLinear;
gd.fillRect(0,0,oC.width,oC.height);
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
canvas渐变2
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
window.onload = function(){
var oC = document.getElementById("c1");
var gd = oC.getContext("2d");
var oRadial = gd.createRadialGradient(300,200,100,300,200,200);
oRadial.addColorStop(0,"red");
oRadial.addColorStop(0.6,"yellow");
oRadial.addColorStop(1,"green");
gd.fillStyle = oRadial;
gd.fillRect(0,0,oC.width,oC.height);
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
canvas背景图
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
window.onload = function(){
var oC = document.getElementById("c1");
var gd = oC.getContext("2d");
var oImg = new Image();
oImg.onload = function(){
//
var pattern = gd.createPattern(oImg,"repeat-y");
gd.fillStyle = pattern;
gd.fillRect(0,0,oC.width,oC.height);
};
oImg.src = "1.jpg";
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
canvas画图片1
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
window.onload = function(){
var oC = document.getElementById("c1");
var gd = oC.getContext("2d");
var oImg = new Image();
oImg.onload = function(){
gd.drawImage(oImg,100,200);
};
oImg.src = "6.jpg";
};
</script>
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
canvas画图片2
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
window.onload = function(){
var oC = document.getElementById("c1");
var gd = oC.getContext("2d");
var oImg = new Image();
oImg.onload = function(){
gd.drawImage(oImg,100,200,200,100);
};
oImg.src = "6.jpg";
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
canvas画图片3
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
window.onload = function(){
var oC = document.getElementById("c1");
var gd = oC.getContext("2d");
var oImg = new Image();
oImg.onload = function(){
gd.drawImage(
oImg,
//sx,sy,sw,sh,
0,0,60,60,
//dx,dy,dw,dh
100,100,60,60
);
};
oImg.src = "coinAni2.png";
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
canvas画图片4(动画)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
window.onload = function(){
var oC = document.getElementById("c1");
var gd = oC.getContext("2d");
var oImg = new Image();
oImg.onload = function(){
var i = 0;
setInterval(function(){
gd.clearRect(0,0,oC.width,oC.height);
gd.drawImage(
oImg,
//sx,sy,sw,sh,
0,60*(i%10),60,60,
//dx,dy,dw,dh
100,100,60,60
);
i++;
},100);
};
oImg.src = "coinAni2.png";
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
canvas变形——旋转
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
function d2a(n){
return n*Math.PI/180;
}
window.onload = function(){
var oC = document.getElementById("c1");
var gd = oC.getContext("2d");
//旋转
gd.rotate(d2a(30));
gd.strokeRect(300,150,200,100);
gd.fillStyle = "rgba(0,0,0,0.1)";
gd.fillRect(0,0,oC.width,oC.height);
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
canvas变形——缩放
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
function d2a(n){
return n*Math.PI/180;
}
window.onload = function(){
var oC = document.getElementById("c1");
var gd = oC.getContext("2d");
//缩放
gd.scale(0.5,0.5);
gd.strokeRect(300,150,200,100);
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
canvas变形——平移
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
function d2a(n){
return n*Math.PI/180;
}
window.onload = function(){
var oC = document.getElementById("c1");
var gd = oC.getContext("2d");
//平移
gd.translate(200,0);
gd.strokeRect(100,150,200,100);
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
canvas变形——平移
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
function d2a(n){
return n*Math.PI/180;
}
window.onload = function(){
var oC = document.getElementById("c1");
var gd = oC.getContext("2d");
//平移
gd.strokeRect(100,50,200,100);
gd.translate(200,0);
gd.strokeRect(100,300,200,100);
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
canvas变形——平移2
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
function d2a(n){
return n*Math.PI/180;
}
window.onload = function(){
var oC = document.getElementById("c1");
var gd = oC.getContext("2d");
//平移
gd.translate(200,0);
gd.strokeRect(100,50,200,100);
gd.translate(-200,0);
gd.strokeRect(100,300,200,100);
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
canvas中心点旋转
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
function d2a(n){
return n*Math.PI/180;
}
window.onload = function(){
var oC = document.getElementById("c1");
var gd = oC.getContext("2d");
//旋转
var d = 0;
setInterval(function(){
gd.save();
gd.rotate(d2a(d++));
gd.strokeRect(300,150,200,100);
gd.restore();
},30);
/*gd.fillStyle = "rgba(0,0,0,0.1)";
gd.fillRect(0,0,oC.width,oC.height);*/
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
canvas中心点旋转2
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
function d2a(n){
return n*Math.PI/180;
}
window.onload = function(){
var oC = document.getElementById("c1");
var gd = oC.getContext("2d");
gd.strokeRect(300,150,200,100);
//
//2 平移画布到物体的中心点
gd.translate(300+100,150+50);
//3. 旋转
gd.rotate(d2a(60));
//1 把自己移动到画布的中心点
gd.strokeRect(-100,-50,200,100);
gd.fillStyle = "rgba(0,0,0,0.1)";
gd.fillRect(0,0,oC.width,oC.height);
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
canvas中心点旋转动画
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
function d2a(n){
return n*Math.PI/180;
}
window.onload = function(){
var oC = document.getElementById("c1");
var gd = oC.getContext("2d");
var d = 0;
setInterval(function(){
gd.clearRect(0,0,oC.width,oC.height);
gd.strokeRect(300,150,200,100);
gd.save();
drawRect(300,150,200,100,d++);
gd.restore();
},30);
function drawRect(x,y,w,h,r){
//2把画布移动到物体的中心点
gd.translate(x+w/2,y+h/2);
//3旋转
gd.rotate(d2a(r));
//1把物体移动到画布中心点
gd.strokeRect(-w/2,-h/2,w,h);
}
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
canvas中心点旋转4
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
function d2a(n){
return n*Math.PI/180;
}
window.onload = function(){
var oC = document.getElementById("c1");
var gd = oC.getContext("2d");
var d = 0;
setInterval(function(){
gd.save();
drawRect(300,150,300,100,d++);
gd.restore();
},30);
function drawRect(x,y,w,h,r){
//2把画布移动到物体的中心点
gd.translate(x+w/2,y+h/2);
//3旋转
gd.rotate(d2a(r));
//1把物体移动到画布中心点
gd.strokeRect(-w/2,-h/2,w,h);
}
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
canvas左上角旋转
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
function d2a(n){
return n*Math.PI/180;
}
window.onload = function(){
var oC = document.getElementById("c1");
var gd = oC.getContext("2d");
var d = 0;
setInterval(function(){
gd.clearRect(0,0,oC.width,oC.height);
gd.save();
//目标
gd.strokeRect(300,200,200,100);
gd.translate(300,200);
gd.rotate(d2a(d++));
gd.strokeRect(0,0,200,100);
gd.restore();
},30);
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>
canvas右下角旋转
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{background:#000;}
#c1{ background:#fff;}
</style>
<script>
function d2a(n){
return n*Math.PI/180;
}
window.onload = function(){
var oC = document.getElementById("c1");
var gd = oC.getContext("2d");
var d = 0;
setInterval(function(){
gd.clearRect(0,0,oC.width,oC.height);
gd.save();
//目标
gd.strokeRect(300,200,200,100);
gd.translate(300+200,200+100);
gd.rotate(d2a(d++));
gd.strokeRect(-200,-100,200,100);
gd.restore();
},30);
};
</script>
</head>
<body>
<canvas id="c1" width="800" height="500"></canvas>
</body>
</html>