キャンバスをつっかって絵を描こう
キャンバスようのHTMLは
HTMLを準備しよう
canvasで図形を描く ←準備ファイル
短いから書いておくと、こんなHTML。
おや変なものがある。
これはbodyタグがonload 読み込まれたとき、tesut()っていうJavaスクリプトをしなさいってこと。
ボタンをつけて、ボタンが押されたとき test()しなさいとか色々出来ますね。
なお、実行するスクリプトはわかりやすい名前にして下さい。
キャンパスを作ろう
キャンバスタグはそこへいろいろな絵を描くことが出来ます。
絵を移動することも出来ます。
まずキャンパスタグを書きましょう。
これでいいのですが、まだ使えないブラウザもあるかもしれません。
と書いておくと、キャンバスを使えない古いブラウザには【図形を表示するには新しいブラウザが必要です。】と表示されます。
エクスプローラもエッジに変わっていくでしょうから必要なくなるでしょう。
でもこのままではどこがキャンバスか分かりません。
そこで、とりあえず
と黄色に塗っておきましょう。
現在の大きさはデフォルトの大きさです。
大きさも指定しましょう。
とすると、大きさが変わります。
これでキャンバスが出来ました。
図形を書いてみよう
まず四角形を書いてみましょう。
スクリプトは、今度は、ヘッドの中に書いてみましょう。
まず
として、ここへスクリプトを書いていきます。
それから、その中に、
と書いていきます。
まず、document.getElementById で
sanple とID名をつけられたキャンバスをつかまえて、
canbas という名前のインスタンスにします。
次の、 if (canvas.getContext) {} は、もし canvas.getContext がちゃんとあればという意味のようです(==true としてみたけどダメ)
と書いてあるページもありました。{}の中に様々書くよりかっこいいですけれど、試してないです。
2次元を書く
これが1です。
2d というのは2次元。つまり表面の図形です。
これを書けるようにするのがこの命令です。
コンテキストを得るという意味ですが、コンテキストとは何でしょう。
コンテキストは【状況】という意味で、最初はまっさら。それに対して、線を書くとか円を描くという【新しい状況】を付け加えることで状況が変わって図形が書ける、という風に考えましょう。
四角を書く1
これが2です。
fillrectのfillは塗りつぶし、rectは四角形です。
原点は左上です。数学のように左下ではありません。
左上が(0,0)です。
そこから右へ50ピクセル、下へ40ピクセルが図形の開始点です。
次の20,30はどういう意味か、数字をかえて考えましょう。
四角を書く2
塗りつぶさない四角を書く。
strokeStyleのストロークは「水泳で腕で水を1かいかくこと」等に使います。
ここでは鉛筆で線を1回書いたくいの意味と考えましょう。
そのスタイルのrgb つまりレッド、グリーン、ブルーを指定しているわけです。
strokeRect(80,20,100,50); は線で四角形をかくという意味です。
円を書く1
fillstyle の意味を考えましょう。
rgb(255,0,0)花に色でしょう。
円は、cvs.arc(150,85,40,Math.PI*1,Math.PI*1.9,true);
最初の150,85は円の中心の位置です。 0,0 にしてみましょう。どうなる?
次の40は何だろう。数字を変えてみましょう。
次のMath.PI*1,Math.PI*1.9は書き始めの角度と書き終わりの角度です。
左端が、Math.PI*0,つまり0ラジアンで0度です。
右端が、Math.PI*1,つまりπラジアンで190度で、左回りではかります。
ラジアンというのは、角度を、半径1の円の回りの長さで表したものです・・・・
2πラジアンが180度、直径×π です。
他にもいろいろな千お書き型があります。
多角形を描く
]]>
できあがったHTMLがこれです(head内にスクリプトがある例)
]]>
できあがったHTMLがこれです(body内にスクリプトがある例)
]]>
参考サイト
←スクリプト参考サイト。
参考サイト
←この中の図形を描くところ(canvas)を見てみましょう。
課題
上の図形を自分の好きな形に書き換えて下さい。
sub1.html へのリンク ←これができあがり資料
b4.ip へのリンク←これを解凍すればほぼできあがり
次の問題へ進む