Canvasに長方形を描く
ページ上にJavascriptを用いて長方形を描画します。
Javascriptで長方形などの画像を描画する際、「canvas」を使用します。
canvasは、教室の黒板やスケッチブックに相当するもので、画像を描画する「下地」となる場所です。
長方形の描画は、以下の手順となります。
- canvasを設定する
- canvas上に長方形を描画する
Canvas
canvasタグ
canvasは、canvasタグで設定します。
<canvas></canvas>
プログラム
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UYF-8" />
<title>Draw Rectangle</title>
</head>
<body>
<canvas width="300" height="200" id="canvas" style="background-color:green;"></canvas>
</body>
</html>
実行結果
横幅300(pixel)×高さ200(pixel)のcanvas

8行目がcanvasタグです。
canvasタグには、canvasの横幅や高さなどの属性があります。
canvasの属性
- 横幅 : width属性で指定 例. width = ”300”
- 高さ : height属性で指定 例. Height = ”200”
- id : “canvas”
- style: “background-color:green;” 背景色:緑
(注)widthとheightは、pixel単位で指定します。300とあるのは、300pixelの意味です。
canvasの座標
長方形を描画するとき、canvasのどこに描画するかといった「位置指定」が必要になります。
そのため、canvasには座標があります。

座標
- 原 点: canvasの左上隅
- x座標: 横方向、左から右に向かう
- y座標: 縦方向、上から下に向かう
例.
上記canvasの
- 右上隅の点の座標は、(300, 0)
- 左下隅の点の座標は、(0, 200)
- 右下隅の点の座標は、(300, 200)
長方形
プログラム
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UYF-8" />
<title>Draw Rectangle</title>
<script>
// ページの全要素をローディング
window.onload = function() {
// 長方形の描画準備
var canvas = document.getElementById("canvas");
var context = canvas.getContext("2d");
// 長方形の描画
context.fillStyle = "orange";
context.fillRect(100, 50, 50, 50);
}
</script>
</head>
<body>
<canvas width="300" height="200" id="canvas" style="background-color:green;"></canvas>
</body>
</html>
実行結果

長方形の描画は、先ずページの全要素をローディングし、次に長方形の描画を準備し、最後に長方形を描画します。
- ページの全要素を ローディング
- 長方形の描画準備
- 長方形の描画
window.onload
window.onloadは、ページのローディング終了時に発生するloadイベントに対応する処理(イベントハンドラ)です。
window.onload = function() {
長方形の描画準備
長方形の描画
}
window.onloadイベントハンドラ中で、長方形の描画準備、長方形の描画を順次実行します。
(注)window.onloadの詳しい説明は、MDNをご参照ください。
長方形の描画準備
var canvas = document.getElementById("canvas");
var context = canvas.getContext("2d");
10行目で、ローディングが終了したページから、<canvas>要素を取得します。
11行目の、getContext(“2d”)は、canvasオブジェクトのメソッドです。
canvasに二次元画像を描画するためのライブラリーを取得します。
長方形の描画
context.fillStyle = "orange";
13行目、contextのfillStyleプロパティで塗りつぶしの色を指定します。
ここでは、オレンジ色をしています。
context.fillRect(100, 50, 50, 50);
14行目、contextのfillRectメソッドで、長方形を描画します。
fillRectメソッドのパラメータ
fillRect(x, y, w, h);
第一引数x と、第二引数y はペアになって、canvas上での長方形の描画位置を指定します。
- (x, y): 長方形の描画位置
(注)長方形の描画位置は、長方形の左上隅の座標で指定します。
第三引数wで、長方形の横幅を、第四引数hで高さを指定します。
例. fillRect(100, 50, 50, 50)
長方形の位置は、(100, 50)、サイズは50(pixel)×50(pixel)

