canvas學習筆記一


為了研究pixi庫,就順帶從頭到位學習下canvas吧

判斷支持力度

var webgl = (function() {
    try {
        var canvas = document.createElement('canvas');
        return !!window.WebGLRenderingContext && (canvas.getContext('webgl') || canvas.getContext('experimental-webgl'));
    } catch (e) {
        return false;
    }
})();

getContext方法指定參數2d,表示該canvas對象用於生成2D圖案(即平面圖案)。如果參數是3d,就表示用於生成3D圖像(即立體圖案),這部分實際上單獨叫做WebGL API

 

繪制路徑

  • beginPath方法表示開始繪制路徑
  • moveTo(x, y)方法設置線段的起點
  • lineTo(x, y)方法設置線段的終點
  • stroke方法用來給透明的線段着色
    //////////
    //繪制路徑 //
    //////////
    context.beginPath()
    context.moveTo(20, 20)
    context.lineTo(30, 30)
    context.moveTo(100, 150)
    context.lineTo(150, 200)
    context.lineWidth = 2
    context.strokeStyle = "red"
    context.stroke()

 

繪制矩形

  • fillRect(x, y, width, height)方法用來繪制矩形,它的四個參數分別為矩形左上角頂點的x坐標、y坐標,以及矩形的寬和高。fillStyle屬性用來設置矩形的填充色
  • strokeRect方法與fillRect類似,用來繪制空心矩形
  • clearRect方法用來清除某個矩形區域的內容
    //////////
    //繪制路徑 //
    //////////
    context.beginPath()
    context.moveTo(20, 20)
    context.lineTo(30, 30)
    context.moveTo(100, 150)
    context.lineTo(150, 200)
    context.lineWidth = 2
    context.strokeStyle = "red"
    context.stroke()

 

繪制文本

  • fillText(string, x, y) 用來繪制文本,它的三個參數分別為文本內容、起點的x坐標、y坐標。使用之前,需用font設置字體、大小、樣式(寫法類似與CSS的font屬性)。與此類似的還有strokeText方法,用來添加空心字
  • fillText方法不支持文本斷行,即所有文本出現在一行內。所以,如果要生成多行文本,只有調用多次fillText方法。
    //////////
    //繪制路徑 //
    //////////
    context.beginPath()
    context.moveTo(20, 20)
    context.lineTo(30, 30)
    context.moveTo(100, 150)
    context.lineTo(150, 200)
    context.lineWidth = 2
    context.strokeStyle = "red"
    context.stroke()

 

繪制圓形和扇形

arc方法用來繪制扇形

ctx.arc(x, y, radius, startAngle, endAngle, anticlockwise);

arc方法

  • x和y參數是圓心坐標
  • radius是半徑
  • startAngle和endAngle則是扇形的起始角度和終止角度(以弧度表示)
  • anticlockwise表示做圖時應該逆時針畫(true)還是順時針畫(false)
    //////////
    //繪制路徑 //
    //////////
    context.beginPath()
    context.moveTo(20, 20)
    context.lineTo(30, 30)
    context.moveTo(100, 150)
    context.lineTo(150, 200)
    context.lineWidth = 2
    context.strokeStyle = "red"
    context.stroke()

 

設置漸變色

createLinearGradient方法用來設置漸變色。

createLinearGradient方法的參數是(x1, y1, x2, y2),其中x1和y1是起點坐標,x2和y2是終點坐標。通過不同的坐標值,可以生成從上至下、從左到右的漸變等等。

    /////////
    //漸變色 //
    /////////
    var myGradient = context.createLinearGradient(0, 0, 0, 60); 
    myGradient.addColorStop(0, "#BABABA");
    myGradient.addColorStop(1, "#636363");
    context.fillStyle = myGradient;
    context.fillRect(10,250,200,100);

 

設置陰影

/////////
    //漸變色 //
    /////////
    var myGradient = context.createLinearGradient(0, 0, 0, 60); 
    myGradient.addColorStop(0, "#BABABA");
    myGradient.addColorStop(1, "#636363");
    context.fillStyle = myGradient;
    context.fillRect(10,250,200,100);

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM