• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    canvas裁剪clip()函数的具体使用

    在canvas中,可以使用clip()函数裁剪区域,设定裁剪区域后,只有在区域内的图像才能显示,其余部分会被屏蔽掉

    未使用裁剪绘制一个圆

    <!DOCTYPE html>  
    <html lang="en">  
    <head>  
        <meta charset="UTF-8">  
        <title></title>  
        <style>  
            *{margin:0; padding:0;}  
            html, body{width:100%; height:100%; overflow:hidden; background-color:#AFAFAF;}  
        </style>  
    </head>  
    <body>  
        <canvas id="canvas"></canvas>  
        <script>  
            var canvas = document.getElementById('canvas'),  
                context = canvas.getContext('2d');  
            canvas.width = document.body.clientWidth;  
            canvas.height = document.body.clientHeight;  
            context.lineWidth = 3;  
            context.strokeStyle = 'red';  
            context.beginPath();  
            context.arc(200, 200, 100, (Math.PI / 180) * 0, (Math.PI / 180) * 360, false);  
            context.stroke();  
            context.closePath();  
        </script>  
    </body>  
    </html>  
    

    效果

    使用clip()裁剪区域

    <!DOCTYPE html>  
    <html lang="en">  
    <head>  
        <meta charset="UTF-8">  
        <title></title>  
        <style>  
            *{margin:0; padding:0;}  
            html, body{width:100%; height:100%; overflow:hidden; background-color:#AFAFAF;}  
        </style>  
    </head>  
    <body>  
        <canvas id="canvas"></canvas>  
        <script>  
            var canvas = document.getElementById('canvas'),  
                context = canvas.getContext('2d');  
            canvas.width = document.body.clientWidth;  
            canvas.height = document.body.clientHeight;  
            context.lineWidth = 3;  
            context.strokeStyle = 'red';  
            context.rect(0, 0, 200, 200);  
            context.clip();  
            context.beginPath();  
            context.arc(200, 200, 100, (Math.PI / 180) * 0, (Math.PI / 180) * 360, false);  
            context.stroke();  
            context.closePath();  
        </script>  
    </body>  
    </html>  
    

    效果

    也可以使用arc绘制圆形的剪裁区域

    <!DOCTYPE html>  
    <html lang="en">  
    <head>  
        <meta charset="UTF-8">  
        <title></title>  
        <style>  
            *{margin:0; padding:0;}  
            html, body{width:100%; height:100%; overflow:hidden; background-color:#AFAFAF;}  
        </style>  
    </head>  
    <body>  
        <canvas id="canvas"></canvas>  
        <script>  
            var canvas = document.getElementById('canvas'),  
                context = canvas.getContext('2d');  
            canvas.width = document.body.clientWidth;  
            canvas.height = document.body.clientHeight;  
            context.lineWidth = 3;  
            context.strokeStyle = 'red';  
            context.arc(100, 100, 150, (Math.PI / 180) * 0, (Math.PI / 180) * 360, false);  
            context.clip();  
            context.beginPath();  
            context.arc(200, 200, 100, (Math.PI / 180) * 0, (Math.PI / 180) * 360, false);  
            context.stroke();  
            context.closePath();  
        </script>  
    </body>  
    </html>  
    

    效果

    使用save和restore实现只裁剪单个路径

    <!DOCTYPE html>  
    <html lang="en">  
    <head>  
        <meta charset="UTF-8">  
        <title></title>  
        <style>  
            *{margin:0; padding:0;}  
            html, body{width:100%; height:100%; overflow:hidden; background-color:#AFAFAF;}  
        </style>  
    </head>  
    <body>  
        <canvas id="canvas"></canvas>  
        <script>  
            var canvas = document.getElementById('canvas'),  
                context = canvas.getContext('2d');  
            canvas.width = document.body.clientWidth;  
            canvas.height = document.body.clientHeight;  
            context.lineWidth = 3;  
            context.strokeStyle = 'red';  
            context.save();  
            context.rect(0, 0, 200, 200);  
            context.clip();  
            context.beginPath();  
            context.arc(200, 200, 100, (Math.PI / 180) * 0, (Math.PI / 180) * 360, false);  
            context.stroke();  
            context.closePath();  
            context.restore();  
            context.beginPath();  
            context.arc(250, 250, 100, (Math.PI / 180) * 0, (Math.PI / 180) * 360, false);  
            context.stroke();  
            context.closePath();  
        </script>  
    </body>  
    </html>  
    

    效果

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    上一篇:html5.2 dialog简介详解
    下一篇:基于MUI框架使用HTML5实现的二维码扫描功能
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    canvas裁剪clip()函数的具体使用 canvas,裁剪,clip,函数,的,