Нужно нарисовать дерево. Для этого есть интерфейс, рисующий линию в гуях, которому передаются 4 переменные: начальный x, y и конечный x, y;
Само дерево бинарное и каждая точка хранит в себе уникальный int id (который также отражает последовательность отрисовки) и double высоту (по y). Рисовать нужно прямоугольники (кластеры), которые в соответствии с положением в дереве объеденяют друг друга (см. скриншот), поэтому начальная 'y' будет равняться высоте ниже стоящего прямоугольника. Соот-но, если высота 0, то это нижний кластер (на скриншоте они как имена - это тоже кластеры, но они не рисуются потому, что под собой ничего не объединяют).
Т.е. рисовать мне нужно 3 линии для каждого кластера: вертикальные - правую и левую, и горизонтальную - соединяющую их сверху. Каждый кластер нужно рисовать отдельно - шаг за шагом.
Задав разрешение картинки, ну скажем 800x600 пикселей, встает проблема определения начальных 'x'-ов для каждого прямоугольника, потому как дерево может быть разной глубины, а разрешение - константы.
Вопрос, как вычислять координаты?