テストステ論

高テス協会会長が, テストステロンに関する情報をお届けします.

平安京ビューの速報

先日, ツリー可視化アルゴリズム「平安京ビュー」の実装を開始しましたで, 卒業論文で実装した平安京ビュー(改)のPython実装に着手したことをお伝えしました. 土曜日まるまる使って基本的なアルゴリズムを一気に実装して, 今朝, ひとまずの形にしたので速報します. 何かうまいことを書こうかと思ったのですが, 頭が疲れてしまったのか何も出てきませんし, 何か書くと事件になる気がします. この「一気にやる病」は, おれの性格に由来していると思いますが, いつかおれの身を滅ぼすと思う. 軽くバーンナウトしてしまった. コードは以下,

https://github.com/akiradeveloper/HeiankyoView

今回はとりあえず, この程度ならサポート出来るだろうという, もっとも抽象的な機能を紹介します.

平安京ビューは, ツリーの可視化アルゴリズムです. 何を入力として何を出力とするかは, 以下, 私が今回紹介するコマンドの使用例を見れば分かると思います. コードのリファクタリングや, もう少し粒度の細かい機能の提供は, これから少しずつやります. ほとんどのユーザには, 以下の簡単なコマンドだけで十分だと思います.

heiankyoviewコマンドは, edgelistという形式のファイルを入力とします. これは, ツリーの連結関係を記述します. 数値は, ノードのIDです. これは, 重複がなければ文字列(例えばファイルパス)でも良いと思います. ただし, 入力されたデータがツリーかどうかのvalidationはこちらではしません. 

(入力)

$ cat edgelist.sample
1,2
1,3
2,4

出力は, それぞれのノードの幾何情報です. 左から, ID, x, y, w, hを表しています. 数学や物理のxy座標系で表しており, (x, y)は長方形の中心座標, (w, h)は長方形の横と縦を表します. このように, ツリー中のノードの座標と大きさを決定するのが平安京ビューの処理です. 興味のある方は, 以下の長方形群を自分で紙に書いてみて, どのようになっているか確かめてください.

(出力)

$ heiankyoview edgelist.sample
1,0.000000,0.000000,12.000000,22.000000
3,-1.000000,-6.000000,8.000000,8.000000
2,0.000000,5.000000,10.000000,10.000000
4,0.000000,5.000000,8.000000,8.000000

以上です. installは, git cloneして#make installするだけなので簡単です. このコマンドを利用して何か面白いアプリを作ったとか, バグがあるという報告は大変welcomeです. アルゴリズムを広めるために, ブログを書いていただくという形での貢献もまた, appriciatedです.