Sponsored Link
ということで、下のFlashを作ってみました。
上のFlashをクリックかダブルクリックして選択し、Rキーを押すと全ノードがランダムに散ります(日本語入力はオフにしてください)。その後、散ったノードが徐々に適当な距離を保つように移動していく様子が確認できると思います。何回か試してみて下さい。
今のところ、マウスイベントは付けていません。また、各ノードは常に移動するように設定したので、適当な距離に広がってもピクピク動きます。
今回は安定化を行う際に、中心の親ノードからの角度は考慮に入れませんでした。各ノード間の距離だけを用いて安定距離を算出することで、親―子―孫―曾孫―・・・ノードの角度を計算する手間を省く為だったんです(が、実際のところ両手法の比較はしていないので、今度実装して計算量を評価してみます)。
なのでノードの初期設定距離によっては全ノードが放射状に広がらないことや、ノードが変に挟まっている場合に硬直してしまうことがあるので、このロジックは改良する必要があります。
普通のMind Mapエディタにはこの機能を付ける必要は無いんですが、機能を考え始めたらつい入れ込んでしまいました。
にしても、シリーズものは「検索エンジンを実装」以来です。まぁ気ままに続けていきます。
とりあえず次はマウスイベントを付けてみよう。
関連すると思われる記事:
- AS3でMind MapぽいFlashを作る (3)各ノード間の線分に文字列を表示
- AS3でMind MapぽいFlashを作る (2)各ノードのドラック&ドロップ
- AS3でMind MapぽいFlashを作る (4)右クリックメニューを各ノードとステージに追加
- AS3でお絵かきFlashを作る (3)図形描画と配置選択ツールの追加
- AS3でお絵かきFlashを作る (1)自由曲線のUndo、Redo
Sponsored Link

ソースコードがほしいな
何分即席のソースコードなので雑なところ(カプセル化が破壊されているとか(ぇー))があり、丁度手直ししようとしていたところです。リファクタリングがある程度進みましたら公開しますが、今は難しいです。申し訳ありません(>_<)