今回はSVG + CSS + JavaScriptの三つ。座標の計算など大半の処理をJavaScriptで行い、あとCSSで可能なスタイルはそちらに外部化。最終的にSVGは、外部ファイル呼び出しだけになりました。 loading from Bitbucket...
SVGのCSSでは図形の大きさ(ノードの円など)を設定できず、こちらに書けるものは少ないです。テキストのみfont-size属性で大きさを設定できますが、多くの場合ノードの円の大きさと連動して調整するので、両方JavaScriptで設定することにしました。 loading from Bitbucket...
JavaScriptはちょっと長め。最初にBinTreeというクラスを定義し、処理を簡単にするためのクラスメソッドを作り、配列(インスタンス作成時に渡される想定)からノード座標を計算。次のdrawNodesというメソッドが描画部分。最後に適当な乱数から配列を作ってテスト。だからロードするたび数値が変わります。 loading from Bitbucket...