HTML5 元素用於圖形的繪製,經過腳本(一般是javascript)完成

HTML5 <canvas> 元素用於圖形的繪製,經過腳本(一般是javascript)完成javascript

<canvas> 標籤只是圖形容器,您必須使用腳原本繪製圖形java

能夠經過多種方法使用canvas繪製路徑\盒\圓以及添加圖像canvas

建立一個畫布(Canvas)字體

一個畫布在網頁中是一個矩形框,經過 <canvas> 元素來繪製.對象

注意: 默認狀況下 <canvas> 元素沒有邊框和內容。ip

<canvas>簡單實例以下:get

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

注意: 標籤一般須要指定一個id屬性 (腳本中常常引用), width 和 height 屬性定義的畫布的大小.容器

提示:你能夠在HTML頁面中使用多個 <canvas> 元素.引用

使用 style 屬性來添加邊框:

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

style="border:1px solid #000000;">

</canvas>

使用 JavaScript 來繪製圖像

canvas 元素自己是沒有繪圖能力的。全部的繪製工做必須在 JavaScript 內部完成:

<script>

var c=document.getElementById("myCanvas");

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

ctx.fillStyle="#FF0000";

ctx.fillRect(0,0,150,75);

</script>

實例解析:

首先,找到 <canvas> 元素:

var c=document.getElementById("myCanvas");

而後,建立 context 對象:

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

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

下面的兩行代碼繪製一個紅色的矩形:

ctx.fillStyle="#FF0000";

ctx.fillRect(0,0,150,75);

設置fillStyle屬性能夠是CSS顏色,漸變,或圖案。fillStyle 默認設置是#000000(黑色)。

fillRect(x,y,width,height) 方法定義了矩形當前的填充方式。

Canvas 座標

canvas 是一個二維網格。

canvas 的左上角座標爲 (0,0)

上面的 fillRect 方法擁有參數 (0,0,150,75)。

意思是:在畫布上繪製 150x75 的矩形,從左上角開始 (0,0)。

座標實例

以下圖所示,畫布的 X 和 Y 座標用於在畫布上對繪畫進行定位。鼠標移動的矩形框上,顯示定位座標。

X

Y

Canvas - 路徑

在Canvas上畫線,咱們將使用如下兩種方法:

moveTo(x,y) 定義線條開始座標

lineTo(x,y) 定義線條結束座標

繪製線條咱們必須使用到 "ink" 的方法,就像stroke().

實例

定義開始座標(0,0), 和結束座標 (200,100). 而後使用 stroke() 方法來繪製線條:

JavaScript:

var c=document.getElementById("myCanvas");

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

ctx.moveTo(0,0);

ctx.lineTo(200,100);

ctx.stroke();

在canvas中繪製圓形, 咱們將使用如下方法:

arc(x,y,r,start,stop)

實際上咱們在繪製圓形時使用了 "ink" 的方法, 好比 stroke() 或者 fill().

實例

使用 arc() 方法 繪製一個圓:

JavaScript:

var c=document.getElementById("myCanvas");

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

ctx.beginPath();

ctx.arc(95,50,40,0,2*Math.PI);

ctx.stroke();

Canvas - 文本

使用 canvas 繪製文本,重要的屬性和方法以下:

font - 定義字體

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

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

使用 fillText():

實例

使用 "Arial" 字體在畫布上繪製一個高 30px 的文字(實心):

JavaScript:

var c=document.getElementById("myCanvas");

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

ctx.font="30px Arial";

ctx.fillText("Hello World",10,50);

使用 strokeText():

實例

使用 "Arial" 字體在畫布上繪製一個高 30px 的文字(空心):

JavaScript:

var c=document.getElementById("myCanvas");

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

ctx.font="30px Arial";

ctx.strokeText("Hello World",10,50);


嘗試一下 ?


Canvas - 漸變

漸變能夠填充在矩形, 圓形, 線條, 文本等等, 各類形狀能夠本身定義不一樣的顏色。

如下有兩種不一樣的方式來設置Canvas漸變:

createLinearGradient(x,y,x1,y1) - 建立線條漸變

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

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

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

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

使用 createLinearGradient():

實例

建立一個線性漸變。使用漸變填充矩形:

JavaScript:

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);


嘗試一下 ?

使用 createRadialGradient():

實例

建立一個徑向/圓漸變。使用漸變填充矩形:

JavaScript:

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 - 圖像

把一幅圖像放置到畫布上, 使用如下方法:

drawImage(image,x,y)

使用圖像:

The Scream

實例

把一幅圖像放置到畫布上:

JavaScript:

var c=document.getElementById("myCanvas");

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

var img=document.getElementById("scream");

ctx.drawImage(img,10,10);

相關文章
相關標籤/搜索