Ну, как ты понимаешь, заложиться на все варианты не получится.
Как вариант, можно попробовать в случае, если ParentID только один, то располагать под соотв. родителем. Правда тут могут быть проблемы, если у других квадратиков паренты будут с разных сторон от того, у которого парент один. Сумбурно немного, но, надеюсь, понятно.
Вариант - центровку делаем все равно так же (по крайней мере для 1-го уровня). Потом пытаемся центровать квадратики по родителям. Только учти вариант, когда детей больше, чем родителей. В принципе, я бы в памяти просто строил бы это дерево, сохраняя координаты, потом бы просто по построенному дереву "выплевывал" бы на канву.
|