■Flash8:マンデルブロ集合の描き方

「たけしのコマネチ大学数学科」はサッカー中継のため放送されず延期。「薫日記」で放送延期になったことは知っていたのだが、だらだらとサッカーを見てしまった。で、今週はやることもないので、私がこれこそは「美しき数学」と思う「マンデルブロ集合」をFlashで描いてみた。ネットで検索すればマンデルブロ集合を描くプログラムはたくさんある。でも、私の知るかぎりFlashでマンデルブロ集合を描くという人はいない。こんなおバカなことに誰も挑戦しないのは、めちゃくちゃ描画が遅いからなのよね><;

マンデルブロ集合を「神の指紋」と例える人もいる。神秘主義に陥るのはどうかと思うが、たったひとつの数式から無限に広がる不思議な図形を描くことができるのは、やはり驚きだ。描画が終わるのをただ待っていてもしかたがないので、「マンデルブロ集合」のおさらいをしておこう。

もしも、あなたがFlash8をお持ちならば、上記のスクリプトをコピーし、Flash8のタイムラインの第1フレームのアクションスクリプトに貼り付けて、ムービープレビューを実行すれば、マンデルブロ集合の基本図形が描かれるはず。
(※注意:Flash8より前のバージョンでは、ピクセル単位でビットマップの描画ができないのでダメ;;)
実数部と虚数部、拡大率を変えて描画してみてほしい。ちなみに冒頭のマンデルブロ集合の設定値は……
20070714_03

そもそも、マンデルブロ集合とは何?

1917年に、フランスの数学者ガストン・ジュリアが複素数に関する論文を発表している。1980年、ベノワ・マンデルブロ博士は、コンピュータを使いジュリア集合と呼ばれる図形を描いているうちに「マンデルブロ集合」を発見したといわれている。マンデルブロ集合の計算式は非常に単純なものの、計算量が膨大になるので、コンピューターが発達するまで、実際に図形を描くのは容易ではなかったのだ。マンデルブロ集合はフラクタル図形の一種で図形をどんなに拡大していっても、無限に細部に分け入ることができ、微妙に違う図形でありながら、いたるところに図形全体の形が現われてくるという性質を持つ(ちなみにフラクタルは、破片、断片、切れ端といった意味のフラクションからきた造語で、マンデルブロ博士の命名による)。

マンデルブロ集合の複素平面って何なの?
コンピュータの画面に表示する計算方法は?

20070714_01

虚数は(i=√-1)のように二乗するとマイナスになっちゃう数のこと。実数ではないので、たとえばエクセルで「=SQRT(-1)」などとするとエラーになるので注意^^;√-9ならば、3iと表す。実数どうしなら2+3=5のように足したり引いたりできるけれど、2+3iは、違う種類の数なので、これ以上、合成することはできない。このように実数と虚数が入り混じった数を「複素数」という。で、複素平面(ガウス平面)は、実数と虚数が直交する点をX,Y座標(デカルト座標)に当てはめたものだ。

20070714_02_1

肝腎のマンデルブロ集合の計算方法は、こんなカンジ。複素平面に対応させたX,Y座標の1点(画素)ごとに、nを1つずつ増やしていきループ計算を行う。計算式の値(ここでは、両辺を二乗して、x*x+y*y>4としている)が発散する場合は、計算回数(n)に応じて色分けしていく。無限に計算するわけにはいかないので、計算回数の上限を設ける(暫定的にrepMax=256としている)。上限まで計算しても値が発散しない場合は、マンデルブロ集合ということになる。ただし256回以上で発散する場合もある。画面を拡大していったときなどは、細部のディテールを得られなくなるので計算回数の上限を増やす必要がある。この辺は、コンピュータの計算能力(速度と精度)にも関わってくる。マンデルブロ集合図の魅力は、その図の一部を拡大し細部に分け入り、きれいに色分けされた不思議な図形を目にすることができることだが、色分けするのは図形を見やすくするためで、計算回数に応じて、どんな色を設定するのかは個人の好み。ただし、マンデルブロ集合内は「黒」にするのがお約束となっている^^;

20070714_04

私がマンデルブロ集合に出会ったのは、MSX2やX6800といった大昔のパソコンの時代。なんで今頃、Flashで描いてみようという気になったかというと、中島聡さんのブログ「Life is beautiful」で「.fla―Idea of Flash Creation」という本を紹介していたからだ。興味があったので私も取り寄せて読んでみた。この本は現役Flashクリエータたちのアイデアが溢れている。たとえば深津貴之さんの「Flash8を素材作成ツールとしてとらえる」という記事がある。Flashは、ウェブ上での出力ツールとしてとらえられているが、これを素材作成のツールとしてとらえてみようという試み。具体的には、写真をもとに、自作のフィルターの作成過程を紹介している。

時間がかかってもよいから、素材作成の自作ツールとしてFlashを使うという発想はおもしろい。私の場合、さらに必ずしも役に立たなくてもよい。自分自身の思考(試行^^;)ツールとしてFlashを使う。とくにブラウザで手軽に表示できるFlashはブログとの相性もよい。ブログで公開しておけば、お酒を飲んで忘れちゃっても大丈夫だしね(@_@;

Fla_idea
.fla―Idea of Flash Creation
著者:鹿倉 公維/セトウ ナオ/タナカ ミノル/ 深津 貴之/さうなまん
発行:エクスメディア
価格:2,800円+税
発行年月:2006年2月
ISBN4-87283-590-5