Fractal Flight – Flex(ActionScript3.0)でマンデルブロ集合

mandelbrot DEMO
※重いので注意
キャンバスサイズは400*400 pixel。各パラメータはオンコーディングで埋め込んでます。

Flex (ActionScript3.0)でマンデルブロ集合を描く。
マンデルブロ集合は膨大な計算時間を必要とするので、ベンチマークテストとして利用されたりします。
ただ、描画が遅いFlashではマンデルブロ集合を描くのはツラい。
マンデルブロ集合の描き方
ガスコン研究所さんのところでは、フレーム毎に1pixelずつプロットして描いています。
コレって一発で描画できないの?と思って、あらかじめループで計算させて一発描画を試みてみましたが、
AS2.0の場合だと、もうしんどいわってタイムアウトしてしまいました、。ムリさせてすまない。

ここで、Onegameさんのとこでは集合全体を一発で描画できています。AS3.0だとやはり速い。
ActionScript 3 版 マンデルブロ集合

僕もフラクタルには興味があってJavaではよく描いてたんですけど、
Flashでもやってみようと思ってひとつ描いてみました。
集合を描画するだけだとつまらないので、拡大アニメーションも加えます。
マンデルブロ集合のアニメーション部分は独立して動作するようにはしたんですが、
これをFlexに乗っけるところで相当ハマってました。。
CanvasコンテナとかにSpriteを表示したい時は、UIComponentにaddChildしないといけないんですね。

今回は↓のムービーみたいなものを目指して作りました。
ひたすらズームし続けます。ほんと不思議な世界ですね。

ラストはこのムービーのようにに落として終了させたかったんですが、
意図せずとも真っ暗になってしまいました。。
しかも真っ暗になる直前の十数フレームの挙動があきらかに変。なぜ?

あわせて読む:

2 Thoughts

  1. 最後の挙動がおかしいのは演算精度の限界なんだと思いますよ。

コメントを残す

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