Canvas 時計

❮ 前章へ 次章へ ❯

これ以降の章では、HTML キャンバスを使用してアナログ時計を作成します。


パート I - キャンバスを作成する

時計には HTML コンテナが必要です。 HTML キャンバスを作成します:

HTML コード:

<!DOCTYPE html>
<html>
<body>

<canvas id="canvas" width="400" height="400" style="background-color:#333"></canvas>

<script>
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var radius = canvas.height / 2;
ctx.translate(radius, radius);
radius = radius * 0.90
drawClock();

function drawClock() {
    ctx.arc(0, 0, radius, 0 , 2*Math.PI);
    ctx.fillStyle = "white";
    ctx.fill();
}
</script>

</body>
</html>
Try it Yourself »

コードの説明

ページに HTML <canvas> 要素を追加します:

<canvas id="canvas" width="400" height="400" style="background-color:#333"></canvas>

HTML canvas 要素から canvas オブジェクト(var canvas)を作成します:

var canvas = document.getElementById("canvas");

canvas オブジェクトに 2d オブジェクト(var ctx)を作成します:

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

canvas の高さを使用して時計の半径を計算します:

var radius = canvas.height / 2;

canvas の高さを使用して時計の半径を計算すると、時計は canvas サイズ全体で動作します。

描画オブジェクトの(0,0)の位置を、canvas の中心に再設定します:

ctx.translate(radius, radius);

canvas 内に時計をより適切に描画するため、時計の半径を 90% に縮小します:

radius = radius * 0.90;

時計を描画する関数を作成します:

function drawClock() {
    ctx.arc(0, 0, radius, 0 , 2*Math.PI);
    ctx.fillStyle = "white";
    ctx.fill();
}

❮ 前章へ 次章へ ❯