二分木の画像化

二分木画像化レシピ - 日記を書く [・w・] はやみずさんを参考に試してみた。

PostScriptで出力したのをIlllustratorで画像化。
コードは以下のような感じ。

def print( out = $stdout, level = 0, lx = 0.0, rx = 592.0, parent_x = nil, parent_y = nil )
	x = ( lx + rx ) / 2
	y = 800.0 - level * 50.0
	if level > 0
		out.puts "#{5.0/level} setlinewidth"
		out.puts "newpath #{parent_x} #{parent_y} moveto #{x} #{y} lineto stroke"
	end
	@left.print( out, level + 1, lx, x, x, y ) if @left
	@right.print( out, level + 1, x, rx, x, y ) if @right
end

赤黒木でもやってみた。データ数10000件ぐらい。

さっきのはランダムな値を10000件追加するのだったけど、今度は昇順に10000件を追加。
すごく……黒いです……
これ、本当に全ての葉から根までの黒ノード数同じなんだろうな? 一応、自分で作ったデバッグ用赤黒木バリデータには通ったけど。
あと、モアレが発生してる><

アニメーションもやってみたいのだけれど...

アニメーションできた。手作業でやったからフレーム数少ない。ImageMagickとか使って自動化したい。
はてなフォトライフではGIFアニメはできないみたい。