★HTML5リファレンス
| <canvas>タグで図形を描く
| <canvas>をスクリプトと組み合わせる
|
しかし、これだけでは図形は表示されません。 このHTMLの部分とJavaScriptをID名で関連付けて、描く図形を指定します。 JavaScriptの部分では、描く図形を指定する前に、 まずキャンバスを使うための準備(描画コンテキストの取得)が必要です。
//描画コンテキストの取得 var canvas = document.getElementById('sample1'); var context = canvas.getContext('2d'); 上のサンプルの一行目では、getElementByIdというメソッド(操作)を使って、HTML文書内でsample1というID名を指定した要素、つまり、<canvas id="sample1">~</canvas>の部分を参照しています。ちなみに、HTMLの仕様では、一つの文書内で重複して同じID名を付けることはできません。
一行目のgetElementByIdで取得したオブジェクト(対象)には、canvasという名前を付けています。 取得したオブジェクトに名前を付けたのは、そのオブジェクトに対して getContextというメソッドを実行するためです。getContextはキャンバスにアクセスするためのメソッドで、<canvas>を操作する際には必ず一度実行する必要があります。
上のサンプルの二行目では、getContext('2d')でコンテキスト名を指定しています。現在のところ、getContext()メソッドでは'2d'という引数のみがサポートされています。 <canvas>で平面図形を描く際には'2d'を指定します。
さて、上記の2行で描画コンテキストを取得して、図形を描くコードを記述し始めても良いのですが、 <canvas>をサポートしてないブラウザを考慮して、描画コードの部分を if (canvas.getContext){ ~ } で囲んでおきましょう。
//描画コンテキストの取得 var canvas = document.getElementById('sample1'); if (canvas.getContext) { var context = canvas.getContext('2d'); //ここに四角形・円などの図形を描くコードを記述する } ここまでで<canvas>で図形を描く準備ができました。
|
| 四角形・円などの図形を描く
|
上記をふまえて様々な図形を描いてみましょう。
HTMLソース
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>canvasで図形を描く</title> <script type="text/javascript"> <!-- function sample() { //描画コンテキストの取得 var canvas = document.getElementById('sample1'); if (canvas.getContext) { var context = canvas.getContext('2d'); //左から20上から40の位置に、幅50高さ100の四角形を描く context.fillRect(20,40,50,100); //色を指定する context.strokeStyle = 'rgb(00,00,255)'; //枠線の色は青 context.fillStyle = 'rgb(255,00,00)'; //塗りつぶしの色は赤 //左から200上から80の位置に、幅100高さ50の四角の枠線を描く context.strokeRect(200,80,100,50); //左から150上から75の位置に、半径60の半円を反時計回り(左回り)で描く context.arc(150,75,60,Math.PI*1,Math.PI*2,true); context.fill(); } } //--> </script> </head> <body onLoad="sample()"> <h2>canvasで図形を描く</h2> <canvas id="sample1" style="background-color:yellow;"> 図形を表示するには、canvasタグをサポートしたブラウザが必要です。 </canvas> </body> </html> ↓↓↓↓
ブラウザ上の表示
canvasで図形を描く上のサンプルでは、塗りつぶしの四角形・枠線の四角形(青)・塗りつぶしの半円(赤)を描いています。 図形を描くのに使用したのは、 fillRect()メソッド・ strokeRect()メソッド・ arc()メソッド・ fill()メソッドです。
図形の色を特に指定しない場合には、一般的なブラウザでは黒になりますが、上のサンプルでは、 strokeStyle属性・ fillStyle属性を使用して、枠線の色を青く、塗りつぶしの色を赤く指定しています。 今回は使用しませんでしたが、canvasでは他にも半透明・グラデーション・影・図形や画像の変形などの指定が可能です。
<canvas>要素の幅と高さは、width属性とheight属性で指定することができますが、 特に指定しない場合の初期値は300×150となります。 キャンバスの背景をCSSのbackground-color:yellow;の指定で黄色くしていますが、 これはキャンバスのサイズを分かりやすくするためです。
<canvas>~</canvas>の中には、 <canvas>タグがサポートされていない環境で表示させるメッセージを記述することができます。
|
| <canvas>は適切に使う
|
HTML5の仕様では、より適切な要素がある場合には、<canvas>を使うべきではないとされています。 例えば、ページの見出しに<canvas>を使うのは不適切です。 見出しを装飾する場合には、<h1>などの適切な要素を使用した上でCSSでスタイリングするべきでしょう。
|
■関連項目