zoukankan      html  css  js  c++  java
  • HTML5之canvas 6 绘制渐变图形

     线性渐变

    Var grd=context.createLinearGradient(xStart,yStart,xEnd,yEnd)

    xStart,yStart)起点,(xEnd,yEnd终点

    grd.addColorStop(offset,color);

    offset范围是0~1之间的浮点数,color是关键颜色

    二、

    径向渐变

    Var grd=context.createRadialGradient(xStart,yStart,radiusStart,xEnd,yEnd,radiusEnd);

    (xStart,yStart,radiusStart)起点中心点坐标和半径,(xEnd,yEnd,radiusEnd终点圆的中心点坐标和半径

    三、

    坐标变换

     1 <html>
     2 
     3     <head>
     4         <meta charset="UTF-8">
     5         <title>线性渐变-径向渐变-坐标变换</title>
     6         <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
     7 
     8     </head>
     9 
    10     <body>
    11         <canvas id="canvas" width="500" height="500"></canvas>
    12         <script type="text/javascript">
    13             var oCanvas = document.getElementById("canvas");
    14             var context = oCanvas.getContext("2d");
    15             //定一个变量,线性渐变
    16             var grd = context.createLinearGradient(0, 0, 500, 0); //(xStart,yStart)起点,(xEnd,yEnd)终点
    17             grd.addColorStop(0, '#ff0'); //offset范围是0~1之间的浮点数,color是关键颜色
    18             grd.addColorStop(0.5, '#f30');
    19             grd.addColorStop(1, '#7fc259');
    20             context.fillStyle = grd;
    21             context.fillRect(0, 0, 500, 500);
    22 
    23             //径向渐变
    24             context.beginPath(); //开始
    25             var grdCirle = context.createRadialGradient(100, 100, 50, 100, 100, 100);
    26             //(xStart,yStart,radiusStart)起点圆的中心点坐标和半径,(xEnd,yEnd,radiusEnd)终点圆的中心点坐标和半径
    27             grdCirle.addColorStop(0, "#f7f8fa"); //起点
    28             grdCirle.addColorStop(0.5, "red");
    29             grdCirle.addColorStop(1, "#53c5d9"); //终点
    30             context.fillStyle = grdCirle;
    31             context.arc(100, 100, 100, 0, 2 * Math.PI); //画一个圆
    32             context.fill(); //填充
    33             context.closePath(); //关上
    34 
    35             context.beginPath();
    36             var graA = context.createRadialGradient(300, 100, 50, 310, 110, 20);
    37             graA.addColorStop(0, "#632cd2");
    38             graA.addColorStop(0.3, "#91bd1c");
    39             graA.addColorStop(0.7, "#e06a29");
    40             graA.addColorStop(1, "#27cd46");
    41             context.fillStyle = graA;
    42             context.arc(300, 100, 100, 0, 2 * Math.PI);
    43             context.fill();
    44             context.closePath();
    45 
    46             
    47             context.translate(250, 250);//移动坐标原点
    48             //坐标变换
    49             for(var i = 0; i < 30; i++) {
    50                 context.rotate(Math.PI/10);//旋转角度
    51                 context.scale(0.95,0.95);//缩小比例
    52                 context.beginPath();
    53                 context.fillStyle = "rgba(255,157,0,0.5)";
    54                 context.fillRect(100, 100, 120, 60);
    55                 context.closePath();
    56             }
    57         </script>
    58     </body>
    59 
    60 </html>

    Context.translate(x,y)

    Context.scale(x,y);

    Context.rotate(angle);

  • 相关阅读:
    【51NOD 1478】括号序列的最长合法子段
    【BZOJ 3527】【ZJOI 2014】力
    【BZOJ 2194】快速傅立叶之二
    【CodeVS 3123】高精度练习之超大整数乘法 &【BZOJ 2197】FFT快速傅立叶
    【BZOJ 2693】jzptab
    【BZOJ 2154】Crash的数字表格
    【BZOJ 3529】【SDOI 2014】数表
    【BZOJ 2820】YY的GCD
    【BZOJ 2301】【HAOI 2011】Problem b
    【POJ 3294】Life Forms 不小于k个字符串中的最长子串
  • 原文地址:https://www.cnblogs.com/Abner5/p/5845367.html
Copyright © 2011-2022 走看看