木の描画

二分木画像化レシピ - 日記を書く [・w・] はやみずさんを自分でもやってみよう、と思ったのだけど、座標や線の太さにはどういう式を使っているのかは書かれていなかったので、HSPで試作。

#module
#deffunc draw_tree double left_x, double right_x, double parent_x, double parent_y, int level, local x, local y
	if level >= 8 : return
	x = double( left_x + right_x ) / 2
	y = level * 60 + 10
	if level != 0 {
		line x, y, parent_x, parent_y
	}
	draw_tree left_x, x,  x, y, level + 1
	draw_tree x, right_x, x, y, level + 1
	return
#global
redraw 0
draw_tree 0, 640, 0, 0, 0
redraw 1