『ActionScript Beautifl Code』

2011 / 06 / 23 by
Filed under: AS, Coding の素, 読書日記 
Bookmark this on Delicious
[`livedoor` not found]
[`yahoo` not found]

池田泰延・著
ワークスコーポレーション
3,360円

2011年6月8日に発売された標記書籍ですが、私のコードも1点採用されました。
諸般の事情で遅れに遅れていた献本を昨日やっと頂戴しましたので、ご報告がてら、思うことなど。

当方をご訪問の方々に「この本は買い!」だなんてことは、言うまでもないことなので書きません。てゆーか既に持ってますよね? 無意味だと思うけど Amazon アソシエイト貼っつけたさ。

また執筆者である Clockmaker さんのブログが有益過ぎるとか、Beautifl とはどのようなサイトかとか、ましてや wonderfl はどんなサイトかなんてことは、当方をご覧になるような方々には常識なので、そういったことにも触れません。

ここでは採用していただいたコードの記事を読んで感じたことを綴ります。

ひとつの作品につき2~3ページという紙幅なので、コードを全部に渡って説明する余裕などなく、ポイントを絞らざるを得ないわけですが、その選択するポイントが実に適切ですねぇ。さすがは Clockmaker さん。

見どころは「平面分割処理アルゴリズムの高速化」とご紹介いただいています。
その高速化できた理由というのが、コードが引用されている、まさにその関数。

この標準偏差を求めるロジックで、対象矩形領域のピクセルを1個ずつ走査するのではなく、BitmapData クラスの histogram メソッドによって得られた結果を走査しているのがキモです。

なぜ走査対象を矩形領域のピクセルから histogram の返値に変えたのか。

histogram の返値はサイズが 256 の Vector.<uint> を4つ格納した Vector、という二重 Vector です。標準偏差はモノクロ化した画像から求めるので、4つある Vector.<uint> のうちアルファ値でないもののいずれか一つだけあればいい。対象矩形領域のサイズが充分に大きな場合、全ピクセル走査をすると、かなりのコストを払う必要がありますが、histogram 返値の走査なら、矩形がどれだけ大きかろうと、走査ループ回数は 256 回という、そこそこ小さな値に固定することができます。

これが高速化の理由です。

対象矩形領域のサイズが充分に小さな場合は、逆にコスト高になる可能性があるので、また別の対応が必要になるかとも思います。

そこらへんのテクニカルな詳細は、以下にまとめてありますので、よろしければご覧ください。

また、私がこの平面分割機構を使って投稿したコードは以下のものです。

  1. 画像フラクタル分割を WebCam に適用
  2. 二つのアルゴリズムによる平面分割の比較
  3. Manic Monday
  4. BallMan
  5. THINK ART のパチモン

最初のが「Beautifl Code」に採用されたもので、平面分割機構を単純に WebCam 映像に適用したもの。
2番目のは、fladdict さんと Quasimondo さん、お二人による平面分割のアルゴリズムを違いを静止画に適用したもの。
以降の3つは平面分割機構を基礎にした、アートっぽい WebCam 作品。
そのあたりのコードもご参考いただければ。

なお、個人的には3番目の Manic Monday が気に入っているので、ふぁぼっていただけると幸い。

[ad#aquioux_net_article]



Comments

Tell me what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!





WP-SpamFree by Pole Position Marketing