zoukankan      html  css  js  c++  java
  • Canvas绘制渐变

    1.绘制线性渐变

    Canvas提供了用于创建线性渐变的函数createLinearGradient(x0,y0,x1,y1),坐标点(x0,y0)是起点 ,(x1,y1)是终点 

    创建一个渐变色 

    var gradient=createLinearGradient(0,0,300,0);

    定义渐变色颜色

    ctx.addColorStop(stop,color);
    ctx.addColorStop(0,"#f00");
    ctx.addColorStop(1,"#00f");

    设置Canvas内容的fillStyle为当前的渐变对象,并且绘制这个图形

    1 ctx.fillStyle=gradient;         //设置fillStyle为当前的渐变对象
    2 ctx.fillRect(0,0,400,300);      //绘制渐变图形

     一个线性渐变的图形

      

     1 <!DOCTYPE html>
     2 <html>
     3 <head lang="en">
     4     <meta charset="UTF-8">
     5     <title></title>
     6 </head>
     7 <body>
     8    <canvas id="myCanvas"></canvas>
     9 
    10    <script type="text/javascript">
    11        var canvas=document.getElementById("myCanvas");
    12        if(canvas && canvas.getContext){
    13            var ctx=canvas.getContext("2d");
    14            var grad=ctx.createLinearGradient(0,0,300,0); //创建一个渐变色线性对象
    15            grad.addColorStop(0,"#f00");                  //定义渐变色颜色
    16            grad.addColorStop(1,"#00f");
    17            ctx.fillStyle=grad;                         //设置fillStyle为当前的渐变对象
    18            ctx.fillRect(0,0,300,100);                    //绘制渐变图形
    19        }
    20    </script>
    21 </body>
    22 </html>

    显示:

    2.绘制径向渐变:注意在绘制径向渐变时,可能会因为Canvas的宽度或者高度设置不合适,导致径向渐变显示不完全,需要考虑调整Canvas的尺寸

      创建一个沿两个圆之间的锥面绘制渐变

     createRadialGradient(x0,y0,r0,x1,y1,r1);

       

     1 <!DOCTYPE html>
     2 <html>
     3 <head lang="en">
     4     <meta charset="UTF-8">
     5     <title></title>
     6 </head>
     7 <body>
     8 <canvas id="myCanvas" width="400px" height="300px"></canvas>
     9 
    10 <script type="text/javascript">
    11     var canvas=document.getElementById("myCanvas");
    12     if(canvas && canvas.getContext){
    13         var ctx=canvas.getContext("2d");
    14         var grad=ctx.createRadialGradient(200,200,50,200,200,200) //创建一个渐变色线性对象
    15         grad.addColorStop(0,"#f00");                  //定义渐变色颜色
    16         grad.addColorStop(1,"#00f");
    17         ctx.fillStyle=grad;                         //设置fillStyle为当前的渐变对象
    18         ctx.fillRect(0,0,400,400);                    //绘制渐变图形
    19     }
    20 </script>
    21 </body>
    22 </html>

    显示

  • 相关阅读:
    自定义能够for each的类,C#,Java,C++,C++/cli的实现方法
    答网友强护灰飞烟灭关于接口的问题
    浅谈C++的this指针
    padding与margin的区别(网上转的)
    啦啦啦 刚注册的,先水一篇~
    直接把页面的table导出到excel表中
    从FTP下载文件带进度条
    C# 从FTP上下载指定文件到本机
    “无法在证书存储区中找到清单签名证书”错误的解决方法
    网页设置不可复制
  • 原文地址:https://www.cnblogs.com/sunli0205/p/6242684.html
Copyright © 2011-2022 走看看