Voronoi Letter
2010/07/16 23:42 - AS3.0
おまえらボロノイ図好きだよな?! 私も大好きです。
そんなワケで、fumix さんが「超速ボロノイ図(Fortune's algorithm)」で、alumican_net さんが「Sketch of Voronoi」でワンダフってたボロノイ図を高速に描画するアルゴリズム Fortune's algorithm を使って、私もボロノイってみましたよ。
Fortune's algorithm の原理はまったく分かりませんが、alumican_net さんのブログに書いてあるとおり、knd さんの「Fortuneのアルゴリズムの可視化」「forked from: Fortuneのアルゴリズムの可視化」を拝見すると何が起きているのかは、とてもよく分かりますね。
原理はよー分からんくても、成果はいただいちゃうオレ様ちゃんといたしましては、Speedy Voronoi diagrams in as3/flash から Fortune.as、Arc.as、Number2.as をダウンロードして、今回のコードに組み込みました。 その際、Fortune.as、Arc.as には手をつけていませんが、ボロノイ母点となるクラス Number2.as は ENTER_FRAME のタイミングで動かすために手を加えています。
で、投稿したのが↓
いろいろ試してみたところ、どうやら Fortune's algorithm には以下の二つの性質があるようです。
- 静止図だと粗が目立つ
- 母点を動かすとき、あるフレームと次のフレームの間で、同一母点の動きが大きくなると、ボロノイ辺が正常に表示されなくなることがある
1.の方ですが、ある程度たくさんの母点が動き回るような場合、ボロノイ辺が実にステキに見えますが、四隅を注視していると、本来表示されるべき辺が欠けていたりするのが確認できます。
今回の私のコードでは、母点をそれほどたくさん生成しないようにしているので、ボロノイ辺がステージの端に行かずに途切れているのが、よく観察できることと思います。
2.の方ですが、Speedy Voronoi diagrams in as3/flash にある三番目のサウンド・ビジュアライザーのサンプルを目をこらしてよく見ていると、たまにボロノイ辺がグチャグチャになることがあります。
フレーム間の母点の移動が数ピクセル程度なら何ら問題ないようですが、急激な移動が生じるとボロノイ辺がグチャグチャになる可能性がある仕様のようです Fortune's algorithm というのは。
Voronoi Letter は当初、母点がマウスから逃げるようにコーディングしていたんですが、マウスの近さに比例して遠くに離れるようにしていたら、ボロノイ辺がかなりの高確率でグチャグチャになったんで、その部分は削除しました。