概要: このチュートリアルでは、Canvas APIを使用して線を引く方法を学習します。
JavaScriptで線を引く手順
キャンバス上に線を引くには、次の手順に従います。
- 最初に、
beginPath()
メソッドを呼び出して新しい線を作成します。 - 次に、
moveTo(x, y)
を呼び出すことで、線を引かずに描画カーソルを点(x,y)
に移動します。 - 最後に、
lineTo(x,y)
メソッドを呼び出すことで、前の点から点(x,y)
に線を引きます。
線のストロークを設定する
strokeStyle
で線をストロークしたい場合は、lineTo(x,y)
メソッドを呼び出した後にstroke()
メソッドを呼び出すことができます。
線の幅を設定する
線の幅を設定するには、stroke()
メソッドを呼び出す前に、2D描画コンテキストのlineWidth
プロパティを使用します。
ctx.lineWidth = 10;
lineTo(x,y)メソッド
lineTo(x,y)
メソッドは、正と負の両方の引数を受け入れます。
x
が正の場合、lineTo(x,y)
メソッドは始点から右側に線を引きます。それ以外の場合は、始点から左側に線を引きます。
y
が正の場合、lineTo(x,y)
メソッドは始点からy軸の下側に線を引きます。それ以外の場合は、始点からy軸の上側に線を引きます。
線の描画例
以下は、キャンバス要素を含むindex.html
ファイルを示しています。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>JavaScript - Drawing a Line</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<h1>JavaScript - Drawing a Line</h1>
<canvas id="canvas" height="400" width="500">
</canvas>
<script src="js/app.js"></script>
</body>
</html>
Code language: HTML, XML (xml)
そして、このapp.jsは、点(100, 100)から(300, 100)まで、赤色で5ピクセルの幅の線を引きます。
function draw() {
const canvas = document.querySelector('#canvas');
if (!canvas.getContext) {
return;
}
const ctx = canvas.getContext('2d');
// set line stroke and line width
ctx.strokeStyle = 'red';
ctx.lineWidth = 5;
// draw a red line
ctx.beginPath();
ctx.moveTo(100, 100);
ctx.lineTo(300, 100);
ctx.stroke();
}
draw();
Code language: JavaScript (javascript)
以下は出力結果を示しています。

再利用可能なdrawLine()関数の開発
次のdrawLine()
関数は、指定されたストロークと幅で、ある点から別の点まで線を引きます。
function drawLine(ctx, begin, end, stroke = 'black', width = 1) {
if (stroke) {
ctx.strokeStyle = stroke;
}
if (width) {
ctx.lineWidth = width;
}
ctx.beginPath();
ctx.moveTo(...begin);
ctx.lineTo(...end);
ctx.stroke();
}
Code language: JavaScript (javascript)
線の色を緑、線の幅を5ピクセルとして、(100,100)から(100,300)に線を引くには、次のようにdrawLine()
関数を呼び出します。
const canvas = document.querySelector('#canvas');
if (canvas.getContext) {
const ctx = canvas.getContext('2d');
drawLine(ctx, [100, 100], [100, 300], 'green', 5);
}
Code language: JavaScript (javascript)
まとめ
beginPath()
、moveTo(x, y)
、lineTo(x,y)
を使用して線を引きます。strokeStyle
とlineWidth
を使用して、線のストロークと線の幅を設定します。
このチュートリアルは役に立ちましたか?