...

JavaScriptを書いた事のない人向けの 『canvasをゼロ

by user

on
Category: Documents
21

views

Report

Comments

Transcript

JavaScriptを書いた事のない人向けの 『canvasをゼロ
JavaScriptを書いた事のない人向けの
『canvasをゼロから勉強するぞ!』
の巻
CSS Nite in OSAKA, Vol.19 / Hideki Akiba
2009年9月28日月曜日
canvasタグとは?
2009年9月28日月曜日
canvasタグとは?
•ブラウザ上に直接、図を描くためのもの
•条件に応じて変化する図形(グラフなど)今ま
でFlashなどを使っていましたが、HTML5で
はブラウザに描画できるようにcanvasタグが
準備されます。
2009年9月28日月曜日
canvasタグとは?
出来る事と言えば・・・
線や円といった図形
を描いたり、色を
塗ったりすることが
可能
http://www.html5.jp/ より
2009年9月28日月曜日
しかし・・・
JavaScriptの知識が
若干必要らしいっ・・・
プログラミングか∼
難しそうだ・・・
http://www.html5.jp/ より
2009年9月28日月曜日
僕らにとって、難しく考える
んじゃなくって、ちょっとず
つでも良いから勉強しときま
しょう。
2009年9月28日月曜日
ご一緒に
デザイナー・プログラミング未経験者のための
canvas入門講座
2009年9月28日月曜日
canvasタグの書き方
<canvas id="test" width="600" height="300"></canvas>
id名をつけると楽。
2009年9月28日月曜日
canvasタグの書き方
<canvas id="test" width="600" height="300"></canvas>
id名をつけると楽。
このタグ(要素)をJavaScriptであつかうために
2009年9月28日月曜日
canvasタグの書き方
<canvas id="test" width="600" height="300"></canvas>
このおまじない・・見た事ないですか?
getElementById()
JavaScriptの超有名な、おまじないです。
2009年9月28日月曜日
canvasタグの書き方
<canvas id="test" width="600" height="300"></canvas>
getElementById(“test”)
エレメント(要素)をゲット!
id名によってゲットする!!
2009年9月28日月曜日
canvasタグの書き方
実際にはこう書きます。
var cv = document.getElementById(“test”);
cv、という変数のなかに、
canvasタグが入れられた
2009年9月28日月曜日
canvasタグの書き方
var cv = document.getElementById(“test”);
if (cv . getContext) {
もしも!?
ブラウザが
canvas
をサポート
していたら
2009年9月28日月曜日
canvasタグの書き方
var cv = document.getElementById(“test”);
if (cv . getContext) {
}
2009年9月28日月曜日
canvasに対応していたら
このなかに書いたプログラムが
実行されます。
canvasタグの書き方
var cv = document.getElementById(“test”);
if (cv . getContext) {
var ctx = cv.getContext("2d");
}
まずはコレ!
canvasの中身を、
変数ctxで扱えるようになる。
2009年9月28日月曜日
canvasタグの書き方
var cv = document.getElementById(“test”);
if (cv . getContext) {
var ctx = cv.getContext("2d");
この{}の中に
ctxをドットでつないで、
図形を描く命令がかけます。
}
2009年9月28日月曜日
canvasタグの書き方
var cv = document.getElementById(“test”);
if (cv . getContext) {
var ctx = canvas.getContext("2d");
例えば・・・
この{}の中に
ctxをドットでつないで、
図形を描く命令がかけます。
}
2009年9月28日月曜日
canvasタグの書き方
var cv = document.getElementById(“test”);
if (cv . getContext) {
var ctx = cv.getContext("2d");
ctx.fillRect(0,0,100,50);
}
ctxをドットでつないで、
こう書きます。
2009年9月28日月曜日
四角形ができました。
canvasタグの書き方
var cv = document.getElementById(“test”);
if (cv . getContext) {
var ctx = canvas.getContext("2d");
ctx.fillRect(0,0,100,50);
}
2009年9月28日月曜日
canvasタグの書き方
ctx.fillRect( 0 , 0 , 100 , 50);
X座標 Y座標 横の長さ 縦の長さ
2009年9月28日月曜日
canvasタグの書き方
fillRect()の他に・・・
2009年9月28日月曜日
canvasタグの書き方
fillRect()の他に・・・
arc() …円弧
lineTo() …直線
bezierCurveTo() …3次ベジェ曲線
quadraticCurveTo() …2次ベジェ曲線
他、色々・・・
2009年9月28日月曜日
canvasタグの書き方
チャレンジ!
直線を書いてみよう
2009年9月28日月曜日
canvasタグの書き方
線を描くとき最初に開始点を決めます。
ctx.moveTo(10, 10);
X座標が10px、Y座標も10pxの位置
からスタート!
チャレンジ!
直線を書いてみよう
2009年9月28日月曜日
canvasタグの書き方
線を描くとき最初に開始点を決めます。
ctx.moveTo(10, 10);
ctx.lineTo(90, 90);
X座標が90px、Y座標も90pxの位置
まで線を引く!
チャレンジ!
直線を書いてみよう
2009年9月28日月曜日
canvasタグの書き方
最後に「線で結びなさい」と命令します。
ctx.moveTo(10, 10);
ctx.lineTo(90, 90);
ctx.stroke();
塗りなのか?線なのか?
それを教えてあげないと、何も描いてくれない。
チャレンジ!
直線を書いてみよう
2009年9月28日月曜日
線が引けました
canvasタグの書き方
最後に「線で結びなさい」と命令します。
ctx.moveTo(10, 10);
ctx.stroke();
ctx.stroke();
塗りなのか?線なのか?
それを教えてあげないと、何も描いてくれない。
チャレンジ!
直線を書いてみよう
2009年9月28日月曜日
canvasタグの書き方
HTML内の数字を引っ張ってきて
棒グラフを作ってみよう。
2009年9月28日月曜日
canvasタグの書き方
こんな事ができるかも・・・
<tr><th>2006</th><td>150</td></tr>
<tr><th>2007</th><td>220</td></tr>
<tr><th>2008</th><td>360</td></tr>
<tr><th>2009</th><td>280</td></tr>
HTML内の情報を拾って
canvasのグラフに描画する!?
2009年9月28日月曜日
canvasタグの書き方
ctx.moveTo(0, 300);
2009年9月28日月曜日
canvasタグの書き方
下から数えるのではなく
上からの座標なので
高さ-50=250
ctx.lineTo(100, 250);
2009年9月28日月曜日
canvasタグの書き方
下から数えるのではなく
上からの座標なので
高さ-200=100
ctx.lineTo(600, 100);
2009年9月28日月曜日
canvasタグの書き方
結果サンプルはこちら
http://www.akibahideki.com/html5/cssnite0927/bar.html
下から数えるのではなく
上からの座標なので
高さ-200=100
ctx.lineTo(600, 100);
2009年9月28日月曜日
canvasタグの書き方
ctx.fill( );
ctx.stroke();
線だけじゃなくって
塗りつぶしなさい!
デフォルトカラーの黒で、
始点と終点が塗りつぶされます。
2009年9月28日月曜日
canvasタグの書き方
結果サンプルはこちら
http://www.akibahideki.com/html5/cssnite0927/
bar_color.html
ctx.fill( );
ctx.stroke();
線だけじゃなくって
塗りつぶしなさい!
デフォルトカラーの黒で、
始点と終点が塗りつぶされます。
2009年9月28日月曜日
canvasタグの書き方
ctx.strokeStyle="#0000ff";
線の色を青にします
ctx.fillStyle="#ff0000";
塗りの色を赤にします
ctx.lineWidth=3;
線の太さを3pxにします
2009年9月28日月曜日
canvasタグの書き方
結果サンプルはこちら
ctx.fill( );
http://www.akibahideki.com/html5/cssnite0927/
bar_color2.html
ctx.stroke();
線だけじゃなくって
塗りつぶしなさい!
デフォルトカラーの黒で、
始点と終点が塗りつぶされます。
2009年9月28日月曜日
canvasタグの書き方
ctx.shadowBlur=300;
ドロップシャドウのぼかし量
ctx.shadowColor = "#000000";
ドロップシャドウの色を黒にします
2009年9月28日月曜日
canvasタグの書き方
結果サンプルはこちら
ctx.fill( );
http://www.akibahideki.com/html5/cssnite0927/
bar_blur.html
ctx.stroke();
線だけじゃなくって
塗りつぶしなさい!
デフォルトカラーの黒で、
始点と終点が塗りつぶされます。
2009年9月28日月曜日
canvasでユーザに
図形を描かせる!?
2009年9月28日月曜日
3次ベジェが標準で備わっているので、
いつものペンツール、あんな感じで図形が
作れないかな?
無謀にも
挑戦
2009年9月28日月曜日
ctx.moveTo( A , B );
ctx.bezierCurveTo( C , D , E , F , G , H );
C ,D
E ,F
A ,B
G ,H
2009年9月28日月曜日
ctx.moveTo( A , B );
ctx.bezierCurveTo( C , D , E , F , G , H );
結果サンプルはこちら
http://www.akibahideki.com/html5/cssnite0927/bezier.html
C ,D
E ,F
A ,B
G ,H
2009年9月28日月曜日
アンカーポイントやハンドルを
ドラッグさせて、図形を保存してみよう
http://www.akibahideki.com/html5/cssnite0927/drag.html
2009年9月28日月曜日
まとめ
2009年9月28日月曜日
まとめ
JavaScript + canvas で動作する
Adobe Illustratorみたいなアプリ、
出てもおかしくなさそう。
2009年9月28日月曜日
まとめ
html5-developers-jpより
canvasにまつわる耳寄りな情報。
JavaScript+Canvasでファミコンをエミュレート
●NESエミュレータ
http://twoseater.bob.buttobi.net/
●実際の動画
http://www.nicovideo.jp/watch/sm6273681
2009年9月28日月曜日
Flashはどうなるの?
Canvasだけで、すべての用途を満たせるわけではありません。
複雑な図形描写やアニメーションであれば、Flashに軍配があがるといえます。
しかし、CanvasはFlashの代替えではありません。
それぞれの特性を理解したうえで、状況に応じた選択をすべきでしょう。
(HTML5.JPサイト運営者 羽田野 太巳 氏)
Flash →
フレームが再生されるたびに処理を実行する
ENTER_FRAMEという概念がある。
JavaScript + canvas →
canvasの仕様にアニメーションのメソッドが無く、
時間毎に画面を書き直す、という処理が必要。
2009年9月28日月曜日
ご清聴ありがとうございました。
またいつかどこかでお会いしましょう。
CSS
Nite
in
OSAKA,
Vol.19
秋葉秀樹
2009年9月28日月曜日
Fly UP