首页前端开发HTMLcanvas裁剪clip()函数的具体使用

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

时间2024-01-24 22:16:26发布访客分类HTML浏览420
导读:收集整理的这篇文章主要介绍了canvas裁剪clip( 函数的具体使用,觉得挺不错的,现在分享给大家,也给大家做个参考。 在canvas中,可以使用clip( 函数裁剪区域,设定裁剪区域后,只有在区域内的图像才能显示,其余部分会被...
收集整理的这篇文章主要介绍了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>
      

效果

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

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

canvas裁剪

若转载请注明出处: canvas裁剪clip()函数的具体使用
本文地址: https://pptw.com/jishu/585813.html
HTML5 WebSocket实现点对点聊天的示例代码 canvas绘制视频封面的方法

游客 回复需填写必要信息