canvas入门系列

<!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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值