「tmlib.js 怒濤の 100 サンプル!!」を試す その35

その35。

tmlib.js 怒濤の 100 サンプル!! – Graphics(HTML5 Canvas) 編

今回試すサンプルは「色, グラデーション(Color, Gradient)」の「状態をスタック, 復帰させてみよう」です。
ではサンプルが掲載されているのでまずは見てみましょう。
中央のボタンを押してみて下さい。
赤青赤の四角形が描画されたと思います。

/*
* 定数
*/
var SCREEN_WIDTH = 465;
var SCREEN_HEIGHT= 465;
tm.main(function() {
// canvas インスタンス生成
var canvas = tm.graphics.Canvas("#world");

// 幅, 高さを指定
canvas.resize(SCREEN_WIDTH, SCREEN_HEIGHT);
// 画面にフィットさせる
canvas.fitWindow();

/// 四角形を描画
canvas.strokeStyle = "red";
canvas.strokeRect(50, 50, 50, 50);

// 状態を保存
canvas.save();
// 四角形を描画
canvas.strokeStyle = "blue";
canvas.strokeRect(75, 75, 50, 50);
// 保存した状態を復帰
canvas.restore();

// 四角形を描画(strokeStyle が赤に戻る)
canvas.strokeRect(100, 100, 50, 50);
};

今回勉強するのは16~25行目です。 基本的には以下を繰り返すだけなので簡単だと思います。

スタイルを決める描画する保存する呼び出す

16~17行目

その31で勉強したストロークスタイルの指定とその10で勉強したストロークでの矩形描画を行なっています。

20行目

save()」で直前のスタイルを保存します。 サンプルの場合は以下のコードです。

canvas.strokeStyle = "red";

ストロークのスタイルと塗りつぶしのスタイルは個別に保存されますので両方同時に設定して1回で保存することも出来ます。  

22~23行目

保存したストロークスタイルとは別のスタイルを設定し矩形を描画しています。

canvas.strokeStyle = "blue";
canvas.strokeRect(75, 75, 50, 50);

25行目

restore() 」で保存したスタイルを呼び出しています。 赤のストロークスタイルですね。

canvas.restore();

27行目

ストロークスタイルは呼び出されていますので、ストロークの矩形を描画すれば適用されます。
その34と組み合わせて塗りつぶしのスタイルを保存したサンプルを作ってみました。
後から描画されたものが上に重なるのが基本仕様です。
重なり順を指定すれば変えることも出来ますよ。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です