HTM5-canvas

什麼是 Canvas?

HTML5 元素用於圖形的繪製,通過腳本 (通常是JavaScript)來完成.

標籤只是圖形容器,您必須使用腳本來繪製圖形。

你可以通過多種方法使用Canva繪製路徑,盒、圓、字符以及添加圖像。


1.首先要創建一個畫布

<canvas id="myCanvas" width="200" height="100"></canvas>

2.然後要通過html dom引用到sp

<script> 
var c=document.getElementById("myCanvas"); 
var ctx=c.getContext("2d"); 
</script>  

getContext("2d") 對象是內建的 HTML5 對象,擁有多種繪製路徑、矩形、圓形、字符以及添加圖像的方法。

3.然後可以開始畫圖了

 ①矩形:

<script> 
var c=document.getElementById("myCanvas"); 
var ctx=c.getContext("2d"); 
ctx.fillStyle="#FF0000"; 
ctx.fillRect(0,0,150,75); 
</script>  

 其中fillstyle設置顏色,fillRect設置參數,前兩個座標爲起始座標,canvas畫矩形是從左上開始的,後兩個分別爲witdh,hight

②線條:

var c=document.getElementById("myCanvas"); 
var ctx=c.getContext("2d"); 
ctx.moveTo(0,0); 
ctx.lineTo(200,100); 
ctx.stroke();

moveto爲起始座標,lineto爲結束座標,stroke函數執行

③圓形:

var c=document.getElementById("myCanvas"); 
var ctx=c.getContext("2d"); 
ctx.beginPath(); 
ctx.arc(95,50,40,0,2*Math.PI); 
ctx.stroke();
arc中的參數分別爲(x , y, 半徑, 開始時間, 結束時間)

④文本:

var c=document.getElementById("myCanvas"); 
var ctx=c.getContext("2d"); 
ctx.font="30px Arial"; 
ctx.fillText("Hello World",10,50);
  • font - 定義字體

  • fillText(text,x,y) - 在 canvas 上繪製實心的文本

  • strokeText(text,x,y) - 在 canvas 上繪製空心的文本


4.漸變色的設置填充

漸變可以填充在矩形, 圓形, 線條, 文本等等, 各種形狀可以自己定義不同的顏色。

以下有兩種不同的方式來設置Canvas漸變:

  • createLinearGradient(x,y,x1,y1) - 創建線條漸變//此處的x1,y1可以理解爲變幻至最後的座標,他會從初始座標到末尾座標漸變,當你x1設置爲0時,橫向不變顏色均勻,縱向漸變,當你y1設爲0時縱向不變,橫向漸變。

  • createRadialGradient(x,y,r,x1,y1,r1) - 創建一個徑向/圓漸變

當我們使用漸變對象,必須使用兩種或兩種以上的停止顏色。

addColorStop()方法指定顏色停止,參數使用座標來描述,可以是0至1.

使用漸變,設置fillStyle或strokeStyle的值爲漸變,然後繪製形狀,如矩形,文本,或一條線。

使用 createLinearGradient():

①矩形漸變:

var c=document.getElementById("myCanvas"); 
var ctx=c.getContext("2d"); 

// Create gradient 
var grd=ctx.createLinearGradient(0,0,200,0); 
grd.addColorStop(0,"red"); 
grd.addColorStop(1,"white"); 

// Fill with gradient 
ctx.fillStyle=grd; 
ctx.fillRect(10,10,150,80);

②圓形漸變:

var c=document.getElementById("myCanvas"); 
var ctx=c.getContext("2d"); 

// Create gradient 
var grd=ctx.createRadialGradient(75,50,5,90,60,100); 
grd.addColorStop(0,"red"); 
grd.addColorStop(1,"white"); 

// Fill with gradient 
ctx.fillStyle=grd; 
ctx.fillRect(10,10,150,80);

當使用<canvas>元素創建徑向漸變的時候 context.createRadialGradient(x , y , r , x1 , y1 , r1) 括號內的參數有如下的含義:

  •  x:表示漸變的開始圓的 x 座標
  •  y:表示漸變的開始圓的 y 座標
  •  r:表示開始圓的半徑
  •  x1:表示漸變的結束圓的 x 座標
  •  y1:表示漸變的結束圓的 y 座標
  •  r1:表示結束圓的半徑

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章