【初心者向け】HTMLで図形を描くCanvas要素を紹介
「HTMLで図形を描いてみたいけどやり方が分からない」
こう思う方は多いのではないでしょうか。本記事をお読みいただくと以下が分かります。
- HTMLで図形の描き方が分かる(JavaScriptも使います)
少しプログラムに慣れてきた方で、次のステップに進む際に図形のように「自分で手を動かして何か作って見る」経験は非常に重要です。是非本記事をお読みいただき、理解を深めてください。
HTMLで図形を描くためのCanvasとは
HTMLで図形を描くための要素がCanvasです。以前はHTML上で図を描くには、「.jpeg」のような拡張子がついた画像を準備する必要があったり、アニメーションをつけるためにFlashなどのプラグインのデータを用意しなければなりませんでした。
しかしCanvas要素の登場によって、これらを用意せずともHTMLとJavaScriptで図形を描くことができるようになりました。
次から、早速具体的なコードの書き方を紹介します。
HTMLでCanvas要素を使ってみよう
(1)基本の書き方
Canvas要素は、以下のように使用します。
<canvas id="任意のid名" width="canvasの横幅" height="canvasの縦幅"> </canvas>
Canvas要素自体はこれで終了ですが、次にこのHTMLとJavaScriptを設定した任意のid名で関連付けて、描く図形を指定する必要があります。
(2)JavaScriptを書いてみる
それでは、続いてJavaScriptの書き方を見ていきましょう。
var canvas = document.getElementById("id名");
var context = canvas.getContext("2d");
まず1行目のgetElementByIdを使い、HTMLでidを指定した部分を参照し、このオブジェクトに対しcanvasという名前を設定します。
次に2行目のgetContextでコンテキスト名を指定します。2dは、2次元グラフィックを描くという意味です。
ここまでで基本的な説明は終了です。最後に、実際にコードを書いてみましょう。
(3)実際にHTMLで図形を描いてみよう
それでは、実際にコードを紹介します。今回は直線と四角形、円の3つを描いてみましょう。
一見コードが長すぎる・・・と思われるかもしれないですが、1つ1つ分解して考えると難しくはありません。先ほど紹介したコードの書き方に、具体的な図形の色を指定しているくらいです。
<html> <head> <meta charset="utf-8" /> </head> <body> <h1>線を描く</h1> <canvas id="line" width="100" height="100"></canvas> <h1>四角を描く</h1> <canvas id="rectangle" width="100" height="100"></canvas> <h1>円を描く</h1> <canvas id="circle" width="100" height="100"></canvas> <script type="text/javascript"> onload = function() { /* 線を引くためのgetElementByIdとgetContext */ var line_canvas = document.getElementById("line"); var line_ctx = line_canvas.getContext("2d"); line_ctx.beginPath(); // 描画の開始位置を指定 line_ctx.moveTo(20, 20); // 線を引く line_ctx.lineTo(80, 80); line_ctx.closePath(); line_ctx.stroke(); /* 四角を描くためのgetElementByIdとgetContext */ var rect_canvas = document.getElementById("rectangle"); var rect_ctx = rect_canvas.getContext("2d"); rect_ctx.beginPath(); // 四角を描く rect_ctx.strokeRect(20, 20, 60, 60); /* 色を付けた円を書くためのgetElementByIdとgetContext */ var cir_canvas = document.getElementById("circle"); var cir_ctx = cir_canvas.getContext("2d"); // 色の指定 cir_ctx.fillStyle = 'red'; cir_ctx.beginPath(); // 円を描く位置を指定 cir_ctx.arc(50, 50, 40, 0, Math.PI * 2, false); // 円を描く cir_ctx.fill(); } </script> </body> </html>
まとめ
いかがでしたでしょうか。HTMLで図形を描くための方法を紹介しました。
HTMLもJavaScriptも・・・と複雑に感じるかもしれないですが、1つ1つのコードを紐解いていくとそこまで難しい内容ではありません。
是非本記事で理解を深め、色々な図形を描いてみてください。