|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
■Twitter: @FumioNonaka / Facebook Page: CreateJS
Creators MeetUp 行列?なにそれ?おいしいの?このレジュメは第20回「Creators MeetUp」のために書いた。当日のUSTREAM録画をつぎに掲げる。 行列(Matrix)は、一定の計算規則にしたがうパラメータ数値(成分)の集まり(正確には、Wikipedia参照)。 01 フィルタでカラーを変換する行列は、フィルタでおもに内部的に使われる。パラメータの数値やスライドバーが行列成分を変化させる。 図001■Adobe Photoshop CC 2014の[照明効果]フィルタ Flash(ActionScript)やCreateJSのColorMatrixFilterでは、カラー変換行列により、ピクセルのRGBAカラー値を変えることができる。 図002■ColorMatrixFilterで彩度を変える 以下は、セピア調のカラー変換行列。詳しくは、MSDN Magazine「Sepia Tone, StringLogicalComparer, and More」(英文)参照。
サンプル001■EaselJSでインスタンスにフィルタとマスクをかける 02 行列で座標を変換する座標を行列で伸縮、回転、移動することができる。2次元平面では3行×3列の正方行列で表される。 表001■行列による座標変換とその結果
伸縮・回転・平行移動がすべて変換行列で扱える。さらに、変換を組合わせることもできる。 図003■行列を使った座標変換 03 矩形のビットマップを3頂点で変形する矩形のビットマップの3頂点を動かして、自由な平行四辺形に変えられる(アフィン変換)。 サンプル002■EaselJSのMatrix2Dクラスを使ったインスタンスの変形 a: 水平伸縮値 / デフォルトの幅図004■インスタンスの垂直と水平の傾斜率を求める
04 変換行列を3次元表現に応用する変換行列を使って3次元表現に応用できる。ただし、ビットマップの変形ではパースがかけられない。 サンプル003■EaselJSのMatrix2Dクラスを用いた3次元表現 ビットマップの変形ではなく、頂点座標を直に計算して描画すれば、パースもかけられる。詳しくは、Gihyo.jp連載に第20回「立方体のワイヤーフレームを水平に回す」から3回にわたって解説した。 サンプル004■立方体の6面をx軸とy軸で回す 作成者: 野中文雄 Copyright © 2001-2014 Fumio Nonaka. All rights reserved. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||