美文网首页
canvas渐变效果,绘制文字和图形-12.15

canvas渐变效果,绘制文字和图形-12.15

作者: 50153465fcd8 | 来源:发表于2016-12-16 14:33 被阅读0次

    渐变效果

    1.在画布上创建一个渐变对象

    var grd = context.createLinearGradient(x1,y1,x2,y2)
    
    //线性渐变,方向为起始点(x1,y1)与结束点(x2,y2)两点连线的方向
    
    var grd = context.createRadialGradient(x1,y1,r1,x2,y2,r2)
    
    //径向渐变,方向为半径为r1的起始圆(x1,y1)与半径为r2的结束圆(x2,y2)的两条外切线方向
    

    2.给渐变对象指定渐变颜色

    addColorStop(position,color)//position:指定渐变颜色的位置(0-1)
    

    3.将渐变对象作为画布对象的颜色

    context.fillStyle = grd;
    

    4.绘制矩形

    context.fillRect(100,100,400,400)
    

    代码示例:

     <body>
        <canvas id="canvas" width="400px" height="400px"></canvas>
    </body>
    <script type="text/javascript">
    
        var context = document.getElementById("canvas").canvas.getContext("2d");
        //1.创建扇形渐变对象
        var grd = context.createRadialGradient(140,140,40,200,200,150);
        //2.给渐变对象指定渐变颜色
        grd.addColorStop(0,"black");
        grd.addColorStop(0.5,"green");
        grd.addColorStop(1,"gray");
        //3.将渐变对象作为画布对象的颜色
        context.fillStyle = grd;
        //4.绘制矩形
        context.fillRect(0,0,400,400);
    </script>
    

    绘制文字

    1.属性

    1)与css的font属性类似

        context.font = "blod 斜体 大小 微软雅黑";
    

    2)对齐方式

    无论是水平方向对齐还是垂直方向对齐,都是基准线对齐,并不是文字对齐

    • 水平对齐

      //绘制文本的基线
      context.beginPath();
      context.moveTo(200,0);
      context.lineTo(200,400);
      context.stroke()
      
      textAlign = left/center/right
      left:基线在文本左侧
      center:基线在文本中间
      right:基线在文本右侧
      
    • 垂直对其

      //绘制文本的基线
      context.beginPath();
      context.moveTo(0,200);
      context.lineTo(400,200);
      context.stroke();
      
      textBaseline= top/middle/bottom/alphabetic/hanging
      top:基线在文本上面
      middle:基线在文本中间
      bottom:基线在文本下面
      alphabetical:字母基线(默认值)
      hanging:悬挂基线
      

    2.方法

    • 绘制空心文字

          strokeText("text",x,y)//x,y是文字的左下角的坐标
      
    • 绘制实心文字

          fillText("text",x,y)
      
    • 返回指定文字的大小信息

          measureText("指定文本")
      

    设置阴影

    1.使用CSS语法声明阴影颜色

          context.shadowColor = "red";
    

    2.接受一个数字,确定对象阴影的水平投射距离

          context.shadowOffsetX = 5;
    

    3.接受一个数字,确定对象阴影的垂直投射距离

          context.shadowOffsetY = 4;
    

    4.为阴影生成模糊效果

          context.shadowBlur = 12;
    

    绘制矩形和圆形

    1.创建路径和绘制同时执行

        context.fillRect(0,0,100,100);
    

    2.使用路径创建图形

    • 每次绘制新图形之前,都要先重新创建一个路径

            beginPath() 
      
    • 结束创建路径,主要用于让线条闭合

            closePath()
      
      • 绘制矩形

          context.beginPath();
          context.rect(x,y,width,height);
          //x和y - 矩形的左上角
          //width/height - 矩形的宽和高
          context.fillStyle = "yellow";
           context.fill();
        
      • 绘制圆形

            context.beginPath();
            context.arc(x,y,radius,startAngle,endAngle,direction);
            //x/y - 设置圆心的坐标值
            //radius - 圆形的半径
            //startAngle - 开始位置 0 - 2*Math.PI
            //endAngle - 结束位置  0 - 2*Math.PI
            //direction - 方向:默认值为false,表示顺时针
            context.closePath();
            context.stroke();

    相关文章

      网友评论

          本文标题:canvas渐变效果,绘制文字和图形-12.15

          本文链接:https://www.haomeiwen.com/subject/ayugmttx.html