canvas漸變和canvas文本

圖形漸變

  • 在畫布上創(chuàng)建一個(gè)漸變對(duì)象
    var grd = context.createLinearGradient(x1,y1,x2,y2)

        x1,y1 - 基準(zhǔn)線的起點(diǎn)坐標(biāo)值
        x2,y2 - 基準(zhǔn)線的終點(diǎn)坐標(biāo)值
      
      var grd = context.createRadialGradient(x1,y1,r1,x2,y2,r2) 
    
       x1,y1 - 第一個(gè)基準(zhǔn)圓的元素坐標(biāo)值
       r1 - 第一個(gè)基準(zhǔn)圓的半徑
    
       x2,y2,r2同上
    
  • 給漸變對(duì)象指定漸變顏色值
    addColorStop(position,color)

    position - 指設(shè)置漸變顏色的位置(0-1)
    
  • 將漸變對(duì)象作為畫布對(duì)象的顏色
    context.fillStyle = grd;

  • 繪制
    context.fillRect(0,0,400,400);


canvas文本

canvas繪制文字
  • 首先在body里創(chuàng)建canvas標(biāo)簽
    <canvas id="canvas" width="400px" height="400px"></canvas>

  • 第二步,在js里獲取到canvas
    var canvas = document.getElementById("canvas");

  • 第三步,獲取畫布對(duì)象
    var context = canvas.getContext("2d");

  • 第四步,使用canvas的API繪制文字
    //1.設(shè)置文本的樣式
    context.font = "bold 20px 微軟雅黑";

    //2.繪制文本
    fillText(text,x,y);//x,y是文字左下角的位置
    
    //水平對(duì)齊方式,值可以是left、right和center 
      textAlign
       //繪制文本的基準(zhǔn)線
         context.beginPath();
         context.moveTo(200,0);
         context.lineTo(200,400);
         context.stroke();
        
         //注意:textAlign的值都指的是基準(zhǔn)線相對(duì)與文本的位置,步驟是先通過文字確定基準(zhǔn)線的位置,再將文字移動(dòng)到相應(yīng)的位置
         context.textAlign = "left/center/height";
    // 文本基線,設(shè)置垂直方向?qū)R,值可以是top、middle和bottom,alphabetic(默認(rèn)值,字母基線)hanging( 懸掛基線)
      textBaseline用法參考textAlign
    
canvas-設(shè)置陰影
  • 使用CSS語法聲明陰影顏色
    context.shadowColor = "aqua";
  • 確定對(duì)象陰影的水平投射距離
    context.shadowOffsetX = 5;
  • 確定對(duì)象陰影的垂直投射距離
    context.shadowOffsetY = 5;
  • 為陰影生成模糊效果
    context.shadowBlur = 12;
canvas-創(chuàng)建路徑-繪制矩形和圓形
  • 使用路徑來創(chuàng)建圖形
    只要單獨(dú)使用路徑,就要有beginPath方法
    // 初始化路徑
    context.beginPath();
    // 繪制路徑
    context.rect(100,100,100,100);
    context.fill();

    設(shè)置圓形形狀
    /*arc(x,y,radius,startAngle,endAngle,direction)
     * x,y代表原點(diǎn)位置
     * radius 圓的半徑
     * startAngle 開始角度
     * endAngle 結(jié)束角度
     * direction 方向 false代表順時(shí)針,true代表順時(shí)針
     */
      context.beginPath();
      context.arc(50,50,50,0,0.5*Math.PI,true);
      context.closePath();
      context.stroke();
    
  • 直接繪制和路徑繪制的區(qū)別
    /* 直接繪制不需要beginPath(),路徑繪制必須要beginPath()
    * fillRect() = rect() + fill();
    * 如果想要閉合空心半圓,使用closePath()
    */

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一:canvas簡(jiǎn)介 1.1什么是canvas? ①:canvas是HTML5提供的一種新標(biāo)簽 ②:HTML5 ...
    GreenHand1閱讀 4,881評(píng)論 2 32
  • 12.15學(xué)習(xí)經(jīng)驗(yàn)分享# Bruce_Zhu于2016.12.15 一、Canvas - 漸變 canvas 畫圖...
    旅行的意義zxy閱讀 537評(píng)論 0 0
  • 一、canvas簡(jiǎn)介 1.1 什么是canvas?(了解) 是HTML5提供的一種新標(biāo)簽 Canvas是一個(gè)矩形區(qū)...
    Looog閱讀 4,041評(píng)論 3 40
  • 一、canvas簡(jiǎn)介 1.1 什么是canvas?(了解) 是HTML5提供的一種新標(biāo)簽 Canvas是一個(gè)矩形區(qū)...
    J_L_L閱讀 1,690評(píng)論 0 4
  • 重寫Context:http://www.imooc.com/video/4324/0 https://www.w...
    Mandy_jin閱讀 877評(píng)論 0 0

友情鏈接更多精彩內(nèi)容