2014年6月21日土曜日

Canvasその1 fillRectで矩形を描画

HTML5での図形描画はcanvasというものを使います

最初のひな形を基に、四角を描画するコードを書いてみます
間違っていると描画されませんので、適当にデバッグログを入れてfirefoxのコンソールで確認しながら進めます

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> Canvas01 </title>

</head>

<body onload="draw('canvas');">
<H1> Canvasによる矩形の描画 </H1>
<canvas id="canvas" width="400" height="300" />

<script>
    function draw(id){
        console.log("ondraw : " + id);

        var canvas = document.getElementById(id);
        if( canvas == null ){
            conslole.log("ぬるぽ");
            return;
        }

        var context = canvas.getContext('2d');
        context.fillStyle = "#FF0000";        // 赤100%
        context.fillRect(0, 0, 400, 300);        // 描画
    }
</script>
</body>
</html>

canvasを使用する手順としては、まずHTML側では
1. body内にcanvasタグをつける
  idとサイズを記載する
2. scriptタグ内にcanvasに描画するjavascriptの関数を追加
  今回は"draw"という関数を用意しました
3. 関数の呼び出し用のイベントを追加
  今回はbodyがloadされたら関数drawを描画させる為に
      <body onload="draw('canvas');">
     としています

javascript側の処理は
1. document.getElementByIdで引数(今回はid:canvas)から"要素"を取得
  ( DOMオブジェクトと記載しているページもありますね)
        var canvas = document.getElementById(id);
    の部分です
2. このオブジェクト(要素・DOMオブジェクト)がnullだったら処理をしないのがお作法なので
  nullチェックを行います 
3. DOMオブジェクトからグラフィックコンテキストを取得
  ここの引数が2dとなっていますが、現在は2dしか無い模様です
  このcontextに対して描画の操作を行っていきます
4. 塗りつぶし処理
  グラフィックコンテキストに対して塗りつぶしメソッドを実行します
  今回はfillで塗りつぶしていますが、輪郭を描くstrokeというものも存在するようです
  context.fillStyle = "#FF0000";        // 赤100%
     RGB値でfillStyleプロパティ (色)を設定
      "red"というように定義済のものを指定可能
      rgbaの記載もできる模様
  context.fillRect(0, 0, 400, 300);
     描画。引数はrectのサイズ

とりあえずこんな感じで図形が描画できました


     




0 件のコメント:

コメントを投稿