2014年10月26日日曜日

Canvasで絵を書こう

HTMLのCanvasという機能とJavaScriptで絵を描くことができます。HTMLで描くためのcanvasタグでキャンバスのエリアを指定し、JavaScriptでcanvasタグのオブジェクトを取得して、コードを使って書くという手順です。今回は赤い四角を描いてみます。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Canvas</title>
</head>
<body>

<canvas id="canvas" width="400px" height="300px"></canvas>

</body>
</html>

はじめにHTMLのbodyタグの中にcanvasタグを追加します。この時、キャンバスの大きさをwidthとheightもしくはスタイルシートで指定しておきます。さらにJavaScriptでcanvasオブジェクトを取得できるようにidを付与しておきます。

それでは早速キャンパスに絵を描いてみます。

<script>
//キャンバスタグのオブジェクトを入れる変数
var canvas;
//お絵かきするためのオブジェクトを入れる変数
var ctx;

window.onload = function(){
    canvas = document.querySelector("#canvas");
    //描写を2D(平面)にして、お絵かき用のオブジェクトを取得
    ctx = canvas.getContext("2d");
};

</script>

HTML内にscriptタグを追加し、お絵かきするためのオブジェクトを取得して、ctx変数に入れます。この時、キャンバスオブジェクトにあるgeteContext関数で描写用のオブジェクトを取得しますが、getContext()の引数に平面の描写なら2d、立体の描写なら3dと入れてオブジェクトを取得します。描写用のオブジェクトが取得出来たら、早速、ctx内のオブジェクトで四角を書いてみましょう。

<script>
var canvas;
var ctx;

window.onload = function(){
    canvas = document.querySelector("#canvas");
    ctx = canvas.getContext("2d");
    
    //四角を描く
    draw();
};

//描写用の関数
function draw(){
    
    //今から描写用のコードを書きます宣言
    ctx.beginPath();
    
    //描写開始点の指定、左の数字がx軸で、右の数字がy軸
    ctx.moveTo(20, 20);
    
    //描写の点の指定
    ctx.lineTo(20, 40);
    ctx.lineTo(40, 40);
    ctx.lineTo(40, 20);
    ctx.lineTo(20, 20);
    
    //線の色を青にする
    ctx.strokeStyle = "blue";
    
    //ここではじめて指定したパスで描く
    ctx.stroke();
}
</script>

ctxに入っている描写用のオブジェクトで描く手順として、最初にbeginPath関数で今から描写するというコードを書き、moveTo関数で描写するポイントを指定します。引数の中にある数字は(x軸, y軸)を意味していて、


左上を0, 0として20, 20に開始点を定めます。lineTo関数はどのような軌道になるかを指定して、引数にはmoveTo関数と同様にx軸とy軸の指定をします。今回のlineToの動きは


赤い線で描いたような指示になっています。注意する点はこの時点ではあくまで軌道を維持しただけで、四角はまだ描写されていません。この後にstrokeStyleプロパティで線の色を指定し、stroke関数ではじめて、今まで書いた指示に従って四角を描きます。このコードの実行結果は


青い正方形が描写されました。

Canvasの詳しい説明
Canvas – HTML Mozilla Developer Network

0 件のコメント:

コメントを投稿