canvas的简单使用

2020-03-03  本文已影响0人  五四青年_4e7d

建立一个简单的模板

1.封装函数,建立容器,和canvas样式;
2.页面加载之后执行;
3.注意:canvas.getContext('2d')

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
    #canvas{
        box-shadow: 0 0  10px #333;
        margin:0 auto;
    }
    </style>
</head>
<body onload="draw()">
    <canvas id="canvas"  width="800" height="600"></canvas>
    <script>
  function draw(){
            var canvas = document.getElementById('canvas')
            if(canvas.getContext){
            var ctx = canvas.getContext('2d')    //理解为画笔
        }
        }  
        </script>
</body>
</html>

(填充的矩形)fill和(描边的矩形)stroke

描边矩形定义:

 ctx.strokeStyle = 'rgba(0,0,0,0.4)'
 ctx.strokeRect(10,10,300,300) 

填充矩形定义:

 ctx.fillStyle = 'red'    //颜色
 ctx.fillRect(20,20,300,300)      //拿起画笔,filRect矩形

删除: ctx.clearRect(45,45,60,60);

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
    #canvas{
        box-shadow: 0 0  10px #333;
        margin:0 auto;
    }
    </style>
</head>
<body onload="draw()">
    <canvas id="canvas"  width="800" height="600"></canvas>
    <script>


        function draw(){
            var canvas = document.getElementById('canvas')
            if(canvas.getContext){

            var ctx = canvas.getContext('2d')    //理解为画笔
            ctx.fillStyle = 'rgba(0,0,0,0.4)'    //颜色
            ctx.fillRect(10,10,300,300)      //拿起画笔,filRect矩形

            ctx.fillStyle = 'red'    //颜色
            ctx.fillRect(20,20,300,300)      //拿起画笔,filRect矩形

           
        }
        }
       
        </script>
</body>
</html>

绘制三角形:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
    #canvas{
        box-shadow: 0 0  10px #333;
        margin:0 auto;
    }
    </style>
</head>
<body onload="draw()">
    <canvas id="canvas"  width="800" height="600"></canvas>
    <script>


        function draw(){
            var canvas = document.getElementById('canvas')
            if(canvas.getContext){
                var ctx = canvas.getContext('2d')    //理解为画笔
           //绘制三角形:
           ctx.beginPath()
           ctx.moveTo(75,50)
           ctx.lineTo(100,75)
           ctx.lineTo(100,25)
           ctx.closePath()
           ctx.stroke()
           
        }
        }
       
        </script>
</body>
</html>

双三角形:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
    #canvas{
        box-shadow: 0 0  10px #333;
        margin:0 auto;
    }
    </style>
</head>
<body onload="draw()">
    <canvas id="canvas"  width="800" height="600"></canvas>
    <script>


        function draw(){
            var canvas = document.getElementById('canvas')
            if(canvas.getContext){
                var ctx = canvas.getContext('2d')    //理解为画笔
           //绘制填充三角形:
           ctx.beginPath()
           ctx.moveTo(25,25)
           ctx.lineTo(105,25)
           ctx.lineTo(25,105)
           ctx.fill()
          

           ctx.beginPath()
           ctx.moveTo(125,125)
           ctx.lineTo(125,45)
           ctx.lineTo(45,125)
           ctx.closePath()
           ctx.stroke()
           
        }
        }
       
        </script>
</body>
</html>

画圆:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
    #canvas{
        box-shadow: 0 0  10px #333;
        margin:0 auto;
    }
    </style>
</head>
<body onload="draw()">
    <canvas id="canvas"  width="800" height="600"></canvas>
    <script>


        function draw(){
            var canvas = document.getElementById('canvas')
            if(canvas.getContext){
                var ctx = canvas.getContext('2d')    //理解为画笔
                ctx.strokeStyle = 'orange'
                ctx.LineWidth = 20
                //画圆
              //  ctx.arc(x,y,radius,startAngle,endAngle,anticlockwise)
                
              //  ctx.arc(400,300,150,0,Math.PI * 2)
               // ctx.arc(400,300,150,0,Math.PI * 1.5)
               ctx.arc(400,300,150,0,Math.PI / 2 * 1.5)
                ctx.stroke()
        }
        }
       
        </script>
</body>
</html>

笑脸:

image.png
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
    #canvas{
        box-shadow: 0 0  10px #333;
        margin:0 auto;
    }
    </style>
</head>
<body onload="draw()">
    <canvas id="canvas"  width="800" height="600"></canvas>
    <script>


        function draw(){
            var canvas = document.getElementById('canvas')
            if(canvas.getContext){
                var ctx = canvas.getContext('2d')    //理解为画笔
                ctx.beginPath()
                ctx.arc(75,75,50,0,Math.PI*2,true)
                ctx.moveTo(110,75)
                ctx.arc(75,75,35,0,Math.PI,false)
                ctx.moveTo(65,65)
                ctx.arc(60,65,5,0,Math.PI*2,true)
                ctx.moveTo(95,65)
                ctx.arc(90,65,5,0,Math.PI*2,true)
                ctx.stroke()

        }
        }
       
        </script>
</body>
</html>

渐变:

image.png
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
    #canvas{
        box-shadow: 0 0  10px #333;
        margin:0 auto;
    }
    </style>
</head>
<body onload="draw()">
    <canvas id="canvas"  width="800" height="600"></canvas>
    <script>


        function draw(){
            var canvas = document.getElementById('canvas')
            if(canvas.getContext){
                var ctx = canvas.getContext('2d')    //理解为画笔
                var lingrad = ctx.createLinearGradient(0,0,0,150)
                lingrad.addColorStop(0,'#cc6677')
                lingrad.addColorStop(0.5,'#fff')
                lingrad.addColorStop(0.5,'#c6c776')
                ctx.fillStyle = lingrad;
                ctx.fillRect(10,10,130,130)
        }
        }
       
        </script>
</body>
</html>

渲染图片:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
    #canvas{
        box-shadow: 0 0  10px #333;
        margin:0 auto;
    }
    </style>
</head>
<body onload="draw()">
    <canvas id="canvas"  width="800" height="600"></canvas>
    <script>


        function draw(){
            var canvas = document.getElementById('canvas')
            if(canvas.getContext){
                var ctx = canvas.getContext('2d')    //理解为画笔
                 var img  = new Image();
                 img.src = 'https://img.yzcdn.cn/vant/apple-1.jpg';
                //绘制图像确保图像加载完成:
                 img.onload = function(){
                    var ptrn = ctx.createPattern(img,'repeat')
                    ctx.fillStyle = ptrn ;
                    ctx.fillRect(0,0,800,600)
                 }
              
        }  
        }
       
        </script>
</body>
</html>

把图片裁剪:

image.png
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
    #canvas{
        box-shadow: 0 0  10px #333;
        margin:0 auto;
    }
    </style>
</head>
<body onload="draw()">
    <canvas id="canvas"  width="800" height="600"></canvas>
    <script>


        function draw(){
            var canvas = document.getElementById('canvas')
            if(canvas.getContext){
                var ctx = canvas.getContext('2d')    //理解为画笔
                 var img  = new Image();
                 img.src = 'https://img.yzcdn.cn/vant/apple-1.jpg';
                //绘制图像确保图像加载完成:
                 img.onload = function(){
                   ctx.beginPath()
                   ctx.arc(400,300,150,0,Math.PI*2)
                   ctx.fill()
                   ctx.clip()
                   ctx.drawImage(this,70,110)
                 }
              
        }  
        }
       
        </script>
</body>
</html>

上一篇下一篇

猜你喜欢

热点阅读