★HTML5リファレンス

私たちはカジノサイトを独自にレビューしています。当社のリンクを通じてサインアップすると、追加料金なしで当社に手数料が発生する場合があります。

広告



■<canvas>タグで図形を描く

今までウェブページ上で図形を描くには、
PNG
JPEG
GIFなどの画像に置き換えるか、
Flash などのプラグインデータを埋め込むのが一般的でした。

HTML5では、2Dのグラフィックスを描く、<canvas>要素が新たに追加されています。
<canvas>を使用することで、標準のHTMLとJavaScriptだけで、
グラフやゲームグラフィックスなどの図形をすばやく表示できるようになります。

HTMLの部分は大変シンプルです。

<canvas id=”sample1″>
図形を表示するには、canvasタグをサポートしたブラウザが必要です。
</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で図形を描く


図形を表示するには、canvasタグをサポートしたブラウザが必要です。

上のサンプルでは、塗りつぶしの四角形・枠線の四角形(青)・塗りつぶしの半円(赤)を描いています。
図形を描くのに使用したのは、
fillRect()メソッド・
strokeRect()メソッド・
arc()メソッド・
fill()メソッドです。

図形の色を特に指定しない場合には、一般的なブラウザでは黒になりますが、上のサンプルでは、
strokeStyle属性・
fillStyle属性を使用して、枠線の色を青く、塗りつぶしの色を赤く指定しています。
今回は使用しませんでしたが、canvasでは他にも半透明・グラデーション・影・図形や画像の変形などの指定が可能です。

<canvas>要素の幅と高さは、width属性とheight属性で指定することができますが、
特に指定しない場合の初期値は300×150となります。 キャンバスの背景をCSSのbackground-color:yellow;の指定で黄色くしていますが、
これはキャンバスのサイズを分かりやすくするためです。

<canvas>~</canvas>の中には、
<canvas>タグがサポートされていない環境で表示させるメッセージを記述することができます。

■Internet Explorerで<canvas>を使う

<canvas>は、HTML5の仕様の中でも比較的ブラウザのサポートが早い機能の一つです。
すでに、Firefox、Safari、Google Chrome、Operaなどのブラウザでは<canvas>がサポートされています。

Internet Explorer8以前ではサポートされていませんが、
Googleが提供しているexplorercanvasというライブラリを使用すれば、
Internet Explorerでも同じように<canvas>で指定した図形を描くことが可能になります。

explorercanvasの使い方は簡単です。
Googleの配布先でダウンロードしたファイルのうち、
excanvas.jsという名前のファイルを適当なディレクトリにアップロードして、
HTMLファイルの<head>~</head>内に以下のコードを追加して呼び出すだけです。

<!–[if IE]>
<script type=”text/javascript” src=”sample/excanvas.js”></script>
<![endif]–>

<!–[if IE]>~<![endif]–>で囲むのは、
Internet Explorer以外では必要の無いexcanvas.jsを、他のブラウザで呼び出さないようにするためです。

HTMLソース

<!DOCTYPE html>
<html>
<head>
<meta charset=”UTF-8″>
<title>canvasで図形を描く</title>

<!–[if IE]>
<script type=”text/javascript” src=”sample/excanvas.js”></script>
<![endif]–>

<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>

Internet Explorerでexplorercanvasが有る場合と無い場合を比較してみてください。

■<canvas>は適切に使う

HTML5の仕様では、より適切な要素がある場合には、<canvas>を使うべきではないとされています。
例えば、ページの見出しに<canvas>を使うのは不適切です。
見出しを装飾する場合には、<h1>などの適切な要素を使用した上でCSSでスタイリングするべきでしょう。

■関連項目

Canvasリファレンス
<canvas> …… 図形を描くHTML5から追加
<前へ 記事一覧へ 次へ>
広告



山田 太郎
テック・リード
山田太郎は、ウェブ開発やグラフィックスプログラミングに10年以上の経験を持つテクノロジーの専門家です。特にHTML5 CanvasやJavaScript、インタラクティブメディアに精通しており、動的なユーザーインターフェースや最先端のウェブアプリケーションの開発に携わってきました。複雑な図形描画や画像操作、リアルタイムグラフィックスに関する知識が豊富で、ウェブ技術の限界を追求する開発者たちにとって頼りになる存在です。知識の共有に情熱を持ち、初心者からプロフェッショナルまで幅広く支援するため、技術フォーラムやブログにも積極的に貢献しています。

ギャンブルガイド もっと見る

カジノファインダー

どのカジノが自分に最適か分からないですか?

サインアップは必要なく、1 分以内に最適なブックメーカーを簡単に見つけることができます。
カジノを探す
Back
質問
Select one of the following options
{"is_any_tile":true}

どのカジノが自分に最適か分からないですか?

Back
Restart
やったー!
これはあなたの選択に基づいた最高のカジノです...
50 users signed up
もっと表示する