網頁設計

關於網頁設計的技術或相關資訊分享

HTML5 Canvas

HTML5 Canvas簡介

今天目標來用Canvas畫出一個的笑臉吧!

1.先建立Canvas物件

<canvas id="canvas1" width="150" height="150" style="border:1px solid #ccc;"></canvas>

只需要在HTML中使用<canvas>標籤,不過為了要讓Javascript可對這個Canvas進行操作,所以我們要加上id,之後才方便指定,border的部分是為了方便看到canvas物件在哪邊,實際使用的時候可以刪除不用,
小提醒: 這邊的width和height要指定,不能使用css來設定,不然畫的圖片比例會跑掉。

2.使用javascript指定canvas物件

<script>
var canvas = document.getElementById("canvas1");
</script>

這樣就能指定canvas物件

3.接著我們先來畫眼睛,畢竟眼睛是靈魂之窗

<script>
var canvas = document.getElementById("canvas1");
var ctx=canvas.getContext("2d");
// 指定參數
var eye_l_x=60;
var eye_l_y=60;
var eye_l_r=5;
var eye_r_x=90;
var eye_r_y=60;
var eye_r_r=5;

// 先畫左眼
ctx.beginPath();
ctx.arc(eye_l_x,eye_l_y,eye_l_r,0,2*Math.PI,true);

// 左眼填色
ctx.fillStyle = "#000";
ctx.fill();

// 畫右眼
ctx.beginPath();
ctx.arc(eye_r_x,eye_r_y,eye_r_r,0,2*Math.PI,true);
ctx.fillStyle = "#000";
ctx.fill();
</script>

 

  就可以看到如上圖這樣的狀況,這是眼睛喔,這不是鼻孔,來說明一下上面的部分,

ctx.arc(圓心x座標,圓心y座標,半徑,開始角度,結束角度,是否要逆時針畫)

其中角度的單位是採用弧度(radian),因此我們一般習慣的角度(deg)要經過換算

換算公式: 弧度(rad) = 角度(deg)*Math.PI/80;

4.接著來畫微笑的嘴巴及大圓臉

<script>
// 指定參數
var mouth_x=75;
var mouth_y=75;
var mouth_r=30;
var face_x=75;
var face_y=75;
var face_r=60;

// 先畫嘴巴
ctx.beginPath();
ctx.arc(mouth_x,mouth_y,mouth_r,30*Math.PI/180,150*Math.PI/180,false);

//畫上嘴巴的弧線
ctx.strokeStyle = "#000";
ctx.lineWidth = 3 ;
ctx.stroke();

// 臉
ctx.beginPath();
ctx.arc(face_x,face_y,face_r,0,2*Math.PI,false);
ctx.strokeStyle = "#000";
ctx.lineWidth = 15 ;
ctx.stroke();
</script>

 

這個部分和上面其實是使用相同的語法,只是沒有填色,多了畫框線的動作而已,其他的後續再慢慢和大家介紹