JavaScriptでcanvasを使った四角形の描画

正方形や四角形は、必ずしも moveTo と lineTo の組み合わせで描画する必要はありません。これにはより簡単なメソッドがあります。それらを見ていきましょう。

strokeRectメソッド

メソッド strokeRect(x, y, 幅, 高さ) は、指定された点に四角形の輪郭を描画します。最初の2つのパラメータは、描かれる四角形の左上の角の座標を設定します。

strokeRect を使って四角形を描画してみましょう(ctx はすでに存在するものとします):

html<canvas width="200" height="200" style="background: #f4f4f4;"></canvas>
javascriptlet canvas = document.querySelector('canvas');
let ctx = canvas.getContext('2d');

ctx.strokeRect(50, 50, 100, 75);

Результат:

Задание 1

fillRectメソッド

メソッド fillRect(x, y, 幅, 高さ) は、strokeRect と同様に動作しますが、塗りつぶされた四角形を描画します。例を見てみましょう:

html<canvas width="200" height="200" style="background: #f4f4f4;"></canvas>
javascriptlet canvas = document.querySelector('canvas');
let ctx = canvas.getContext('2d');

ctx.fillRect(50, 50, 100, 75);

Результат:

Задание 2

rectメソッド

次のメソッド rect(x, y, 幅, 高さ) も四角形を描画します。しかし、この四角形は stroke または fill メソッドを適用した場合にのみ可視化されます。最初の場合は輪郭が、2番目の場合は塗りつぶされた図形が表示されます。

rect を使って輪郭を描画してみましょう:

html<canvas width="200" height="200" style="background: #f4f4f4;"></canvas>
javascriptlet canvas = document.querySelector('canvas');
let ctx = canvas.getContext('2d');

ctx.rect(50, 50, 100, 75);
ctx.stroke();

Результат:

次に、塗りつぶした図形を描画します:

html<canvas width="200" height="200" style="background: #f4f4f4;"></canvas>
javascriptlet canvas = document.querySelector('canvas');
let ctx = canvas.getContext('2d');

ctx.rect(50, 50, 100, 75);
ctx.fill();

Результат:

Задание 3
Задание 4

clearRectメソッド

次のメソッド clearRect(x, y, 幅, 高さ) は、消しゴムのように動作し、四角形の領域をクリアして内容を完全に透明にします。

fillRect を使って小さな正方形を描画し、clearRect を使ってその一部を消去してみましょう:

html<canvas width="200" height="200" style="background: #f4f4f4;"></canvas>
javascriptlet canvas = document.querySelector('canvas');
let ctx = canvas.getContext('2d');

ctx.fillRect(50, 50, 100, 100);
ctx.clearRect(75, 75, 50, 50);

Результат:

Задание 5