canvas介紹和用途


canvas介紹和用途

canvas(畫布)主要是位圖  svg(矢量圖)

canvas標簽,必須要寫的3個屬性 id  width  height  

  為什么不在style中設置width和height呢?

    因為這設置width和height話會有位移差;

    位移差:在畫布里面的元素有偏差;

  js中每次使用canvas,都要設置一個繪圖環境,然后會得到一個對象,然后對其進行操作;

  var c=document.getElementById("") canvas標簽的id值;

  var d=c.getContext("2d")  設置繪圖屬性;

  然后得到d這個對象,就可以對其進行操作元素里面的屬性和方法;

  方法和屬性(帶()的是方法,不帶的是屬性):

    fillRect():繪制一個填充方塊,默認顏色是黑色; 參數:x,y,w,h    (坐標和寬高)

    fillStyle:填充顏色  屬性值:想要的顏色;

    strokeRect():繪制邊框的方框; (如果繪制邊框的話,會有2px的偏差,所以設置坐標的話需要在原有的基礎上加上0.5),參數同fillRect()

    lineWidth:邊框粗細;

    strokeStyle:線條顏色;

    lineJoin:邊框圓角 屬性值:round 圓,  

    lineCap:線條圓角;

    繪制線條

      moveTo():繪制線段的起點  參數  x,y   坐標位置;

      lineTo():繪制線段的領點  參數 x,y  坐標位置 ;  (最后一個lineTo就代表終點)

      線條只能有一個moveTo(),但卻可以有很多lineTo()

    stroke()  繪制線段;

    beginPath  開始路徑  必須要寫對應的關閉路徑  

    closePath  關閉路徑

    兩者同時出現,將繪制路徑閉合,起始點和結尾點,首尾相連;

    rect()  繪制方塊,及不帶填充色和線框;

    fill()  填充顏色;

    clearRect(x,y,width,height)  清除矩形區域

    save()  restore()  這兩個方法成對出現,中間的屬性樣式,之影響內部,不影響外部;

  畫圓:

    arc():參數(x,y,半徑,開始弧度,結束弧度,時針方向);

    x,y坐標  半徑,圓的大小,  開始弧度,一般都是0,結束弧度,一般都是 (0-360)*Math.PI/180,  時針方向,true 逆時針,false 順時針  

    translate() 平移,畫布大小位置不變,起始坐標變了   參數 x,y 

  旋轉:rotate()  同translate原理;

  需注意一點,需要先通過  translate()  確定起始坐標點,在來操作rotate會比較好

  縮放:scale(0.5,0.5)  畫布縮放,就是將畫布向后移動,跟人的視距就遠了,近大遠小;

  畫布中插入圖片;drawImage()

    var img=new Image()  

    img.src="圖片路徑"  

    img.onload=function(){

      d.drawImage(img,x,y,w,h)    d就是畫布對象,img圖片對象,坐標寬高,drawImage()在畫布中插入圖片

    }    

  插入文字:

    strokeText()  插入的文字帶邊框  參數:   "輸入的內容" , x , y  (坐標)

    fillText()    不帶邊框    參數同strokeText()

     textAlign:相對字體的起始點,水平居中

    textBaseline:移到字體的起始點,垂直居中

    font:字體大小和字形

 


免責聲明!

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



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