Как предотвратить наложение вершины? - PullRequest
1 голос
/ 15 декабря 2009

Я использую Юнга для рисования графиков. Ниже приведен простой график с макетом дерева, который выглядит хорошо. Все рендеры и трансформеры по умолчанию.

альтернативный текст http://czuk.eu/stackoverflow/ballon_layout_default_size.png

Теперь я изменил размер узлов по умолчанию на 100px, установив пользовательский VertexShapeTransformer. Проблема в том, что узлы начали перекрываться. Здесь вы можете увидеть, как это выглядит:

альтернативный текст http://czuk.eu/stackoverflow/ballon_layout_size_100px.png

Можно ли избавиться от перекрытия вершин? Это вопрос макета или какого-то преобразования формы?

Заранее благодарю за любые предложения: -)

Ответы [ 3 ]

1 голос
/ 17 декабря 2009

После не очень долгого исследования я обнаружил, что есть два статических атрибута, ответственных за установку минимальных расстояний между вершинами. Это TreeLayout.DEFAULT_DISTX и TreeLayout.DEFAULT_DISTY. К сожалению, эти атрибуты определяют фиксированное минимальное расстояние между вершинами, но не учитывают реальный размер каждой вершины, который может отличаться. Настройка действительна для TreeLayout и BalloonLayout, которые расширяют TreeLayout.

Я также пробую другой макет, но не могу найти аналогичное решение. Этот вопрос к другому вопросу; -)

1 голос
/ 22 ноября 2010

При создании TreeLayout вы можете указать TreeLayout.DEFAULT_DISTX и TreeLayout.DEFAULT_DISTY в конструкторе:

TreeLayout treeLayout = new TreeLayout<String,Integer>(graph,100,100);
0 голосов
/ 15 декабря 2009

Возможно, вам нужно увеличить расстояние между узлами? Вы начали с определенного расстояния с узлами определенного размера. Когда вы увеличили размер узла, вы сократили расстояние между ними, чтобы компенсировать дополнительное расстояние, которое необходимо поместить между узлами, чтобы они не перекрывались.

...