HTML5 Canvas 教程:五、形狀
五、形狀 Shapes
5.1自定義形狀 Custom Shape
若要用HTML5畫布繪製自定義形狀,可以建立一個路徑,然後呼叫closePath()方法關閉它。可以使用lineTo()、arcTo()、quadraticCurveTo()或bezierCurveTo()方法來構造構形狀的每個子路徑。
<!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(
// begin custom shape
context.beginPath();
context.moveTo(170, 80);
context.bezierCurveTo(130, 100, 130, 150, 230, 150);
context.bezierCurveTo(250, 180, 320, 180, 340, 150);
context.bezierCurveTo(420, 150, 420, 120, 390, 100);
context.bezierCurveTo(430, 40, 370, 30, 340, 50);
context.bezierCurveTo(320, 5, 250, 20, 250, 50);
context.bezierCurveTo(200, 5, 150, 20, 170, 80);
// complete custom shape
context.closePath();
context.lineWidth = 5;
context.strokeStyle = 'blue';
context.stroke();
</script>
</body>
</html>
以上程式碼演示了在畫布上繪製閉合的自定義圖形,並用藍色填充。
5.2矩形 Rectangle
要使用HTML5 畫布繪製矩形,可以使用rect()方法而不是用4條連線線構造形狀。一個HTML5畫布矩形用X和Y座標進行定位,並以width和height引數定義矩形的大小。矩形通過左上角的點進行定位。
<!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.rect(188, 50, 200, 100);
context.fillStyle = 'yellow';
context.fill();
context.lineWidth = 7;
context.strokeStyle = 'black';
context.stroke();
</script>
</body>
</html>
以上程式碼演示了在畫布上繪製一個矩形,並填充為黃色。
5.3圓形 Circle
要用HTML5畫布繪製一個圓,可以呼叫arc()方法通過定義起始角為0,結束角為2*PI來建立完整的圓弧。
<!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');
var centerX = canvas.width / 2;
var centerY = canvas.height / 2;
var radius = 70;
context.beginPath();
context.arc(centerX, centerY, radius, 0, 2 * Math.PI, false);
context.fillStyle = 'green';
context.fill();
context.lineWidth = 5;
context.strokeStyle = '#003300';
context.stroke();
</script>
</body>
</html>
以上程式碼演示了在畫布上繪製一個圓形,並以綠色填充。
5.4半圓 Semicircle
為了用HTML5 Canvas繪製一個半圓,我們可以使用arc()方法建立一個弧形,並且定義結束角為startAngle+PI。
<!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.arc(288, 75, 70, 0, Math.PI, false);
context.closePath();
context.lineWidth = 5;
context.fillStyle = 'red';
context.fill();
context.strokeStyle = '#550000';
context.stroke();
</script>
</body>
</html>
以上程式碼演示了在畫布上繪製一個閉合的半圓,並用紅色填充。