HTML5 Canvas 教程:二、線條
二、線條Lines
2.1直線 Line
要在畫布上繪製線條,可以通過呼叫:beginPath()、moveTo()、lineTo()和stroke()方法來實現。
首先,我們可以使用beginPath()方法來宣告我們即將繪製一個新的路徑。接下來,我們可以使用moveTo()方法定位上下文物件的繪圖起點(即繪圖游標),然後使用lineTo()方法從起始位置繪製一條直線到一個新的位置。最後,為了使線條可見,呼叫stroke()方法將線條繪製出來。除非另有宣告,否則筆劃顏色預設為黑色。
<!DOCTYPE HTML>
<html>
<head>
<style>
body {
margin: 0px;
padding: 0px;
}
</style>
</head>
<body>
<canvas id="myCanvas" width="578" height="200"></canvas>
<script>
var canvas = document.getElementById(
var context = canvas.getContext('2d');
context.beginPath();
context.moveTo(100, 150);
context.lineTo(450, 50);
context.stroke();
</script>
</body>
</html>
以上程式碼演示了在畫布上繪製一段黑色的直線。
2.2線條寬度 Line Width
如果要改變繪製線條的寬度,可以使用畫布上下文物件的lineWidth屬性,但是必須先設定lineWidth屬性,然後呼叫stroke()方法繪製線條。
<!DOCTYPE HTML>
<html>
<head>
<style>
body {
margin: 0px;
padding: 0px;
}
</style>
</head>
<body>
<canvas id="myCanvas" width="578" height="200"></canvas>
<script>
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
context.beginPath();
context.moveTo(100, 150);
context.lineTo(450, 50);
context.lineWidth = 15;
context.stroke();
</script>
</body>
</html>
以上程式碼在頁面的canvas畫布上繪製一段寬度為15的直線。
2.3線條顏色 Line Color
要設定HTML5畫布行的顏色,可以使用畫布上下文物件的strokeStyle屬性,它可以設定為顏色字串,如紅色、綠色或藍色、十六進位制值,如#FF0000或#555,或者RGB值,如rgb(255、0、0)。
<!DOCTYPE HTML>
<html>
<head>
<style>
body {
margin: 0px;
padding: 0px;
}
</style>
</head>
<body>
<canvas id="myCanvas" width="578" height="200"></canvas>
<script>
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
context.beginPath();
context.moveTo(100, 150);
context.lineTo(450, 50);
context.lineWidth = 10;
// set line color
context.strokeStyle = '#ff0000';
context.stroke();
</script>
</body>
</html>
以上程式碼演示了在畫布上繪製一段寬度為15的紅色直線。
2.4端點樣式 Line Cap
通過設定lineCap屬性,定義線條的端點樣式。HTML5畫布線條有三種端點樣式,包括:butt、round和square。除非另有宣告,否則HTML5畫布預設使用butt樣式繪製線條端點。必須先設定lineCap屬性,然後呼叫stroke()方法繪製線條。
<!DOCTYPE HTML>
<html>
<head>
<style>
body {
margin: 0px;
padding: 0px;
}
</style>
</head>
<body>
<canvas id="myCanvas" width="578" height="200"></canvas>
<script>
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
// butt line cap (top line)
context.beginPath();
context.moveTo(200, canvas.height / 2 - 50);
context.lineTo(canvas.width - 200, canvas.height / 2 - 50);
context.lineWidth = 20;
context.strokeStyle = '#0000ff';
context.lineCap = 'butt';
context.stroke();
// round line cap (middle line)
context.beginPath();
context.moveTo(200, canvas.height / 2);
context.lineTo(canvas.width - 200, canvas.height / 2);
context.lineWidth = 20;
context.strokeStyle = '#0000ff';
context.lineCap = 'round';
context.stroke();
// square line cap (bottom line)
context.beginPath();
context.moveTo(200, canvas.height / 2 + 50);
context.lineTo(canvas.width - 200, canvas.height / 2 + 50);
context.lineWidth = 20;
context.strokeStyle = '#0000ff';
context.lineCap = 'square';
context.stroke();
</script>
</body>
</html>
以上程式碼分別演示了三種線條端點樣式。