バイト先に paperboy&co. のかたが遊びにくるというので、歓迎の意を表して POOKGLOBE というものを作ってみた。
POOKMARK Airlines のアンテナ (del.icio.us でいうところの network) を二次元平面にグラフとして表示するというありがちなもの。ありがちとはいっても、これ系のグラフ物は前々から一度実装してみたかったので結構満足している。
グラフの自動配置アルゴリズムは Peter Eades さんの『A Heuristic for Graph Drawing』という論文から、なんだけど Web で読めなかったので、実際には筑波のかたの『ビジュアルプログラミングシステムのためのグラフ描画アルゴリズムの改良』と、青学のかたの『UML 対応版構造化オブジェクトモデリング環境 SOME98 の開発研究』とを読んで実装している。Web にない論文は読めない大学生とか、もうね。うん。あとで大学の図書館で聞こう。
アルゴリズムまわりでは、接続数が多いノードの位置が安定しなくて、震えたり飛んでいったりにずいぶん悩まされた。接続数が n 以上のものは移動ベクトルの計算をあきらめて手動配置に逃げてみても、どうもうまくいかない。結局、接続数の逆数を移動ベクトルにかけて、接続数が多いノードほど動かない「重い」ノードとして扱うようにしたらうまくいった。
実装は、サーバー側にちょっとだけ Ruby があって、あとは ActionScript 3 を Flash 無しで手で書いている。mtasc のころは JavaScript で Java アプレットを書くみたいで楽しかったんだけど、mxmlc は型まわりがうるさめで Java くなりすぎている感じがする。これが ActionScript 2 と 3 の差なのか、Motion Twin と Adobe の差なのかはわからないけど。
ちなみに、Motion Twin がやってる haXe というコンパイラも ActionScript 3 な (というか AVM2 な) SWF を吐ける。ただ、食わせるソースが ActionScript 3 と微妙にちがう新言語で、コンストラクタになるメソッドがクラスと同名のものではなくて一律 new だったりする。例えていうなら、end じゃなくて { } な Ruby みたいで「気持ちは分からなくはないけど有名って大事だよ?」と、いまひとつ使う気がしない。
August 23rd, 2007 at 07:06 PM
level love roll back http://glucotrol.8000web.com/ have fun with party nice. glucotrol first do extention my love and http://glucotrol.8000web.com/generic-glucotrol.html who else love Good work! generic glucotrol but this site root have fun with http://glucotrol.8000web.com/glucotrol-2.5-mg.html while tip property. glucotrol 2.5 mg contents but this site elephant http://glucotrol.8000web.com/glucotrol-dose.html nobody my love and at last. glucotrol dose is happy everything http://glucotrol.8000web.com/cheap-glucotrol.html request Glad to see you way. cheap glucotrol Buy visit this my love and http://glucotrol.8000web.com/glucotrol-dosage.html very good root were created. glucotrol dosage