0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【入門者向け】Canvas入門講座#3 三角形を描こう【JavaScript】

Last updated at Posted at 2020-11-10

#問題3
点(100,100)と点(300,200)を点(50,150)結ぶ三角形を線分で描画しなさい。
なお、以下のHTMLを使うこと。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>問題3</title>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
$(() => {
    // ここにプログラムを書く
});
</script>
</head>
<body>
<canvas id="my-canvas" width="500" height="300"></canvas>
</body>
</html>

#答え

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>問題3</title>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
$(() => {
	// コンテキストを取得
    const ctx = $('#my-canvas')[0].getContext('2d');

    ctx.beginPath();		// 現在のパスをリセットする
	ctx.moveTo(100, 100);	// パスの開始座標を指定する
	ctx.lineTo(300, 200);	// 座標を指定してラインを引く
	ctx.lineTo(50, 150);	// 座標を指定してラインを引く
	ctx.closePath();		// パスを閉じる
	ctx.stroke();			// 現在のパスの輪郭を描画する
});
</script>
</head>
<body>
<canvas id="my-canvas" width="500" height="300"></canvas>
</body>
</html>

三角形が表示されました!
ダウンロード (4).png

#解説
コンテキストを取得します。これは問題1と同じです。

const ctx = $('#my-canvas')[0].getContext('2d');

問題2と異なり、strokeの前にclosePathを呼んで、パスを閉じています。
パスを閉じないと線分が2本表示されるだけになり、三角形にはなりません。注意しましょう。

ctx.beginPath();        // 現在のパスをリセットする
ctx.moveTo(100, 100);   // パスの開始座標を指定する
ctx.lineTo(300, 200);   // 座標を指定してラインを引く
ctx.lineTo(50, 150);    // 座標を指定してラインを引く
ctx.closePath();        // パスを閉じる
ctx.stroke();           // 現在のパスの輪郭を描画する
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?