Ограничения на то, где ребра соединяются с вершиной (JGraphX)
Я заметил, что при соединении нескольких ребер с одной (прямоугольной) вершиной положения, где они соединяются, равномерно распределяются по всей стороне вершины. Есть ли способ изменить это поведение? Я использую mxHierarchicalLayout.
На моем графике я хочу, чтобы края были как можно более прямыми (но только горизонтальными и вертикальными). Вот что у меня сейчас есть:
Например, почему край "G" слегка изгибается? Я бы хотел, чтобы он шел по прямой горизонтальной линии от "PIC" до "W4". В идеале я хотел бы изменить настройку для каждой вершины, которая задает поведение соединения ребер, чтобы "соединяться там, где вам нравится", и позволить компоновке определить лучшее место, где ребро образует наименьшее количество углов.
Я знаю, что могу установить "exitX/Y" и "entryX/Y", но это потребует от меня расчета этих значений и всего процесса верстки вручную. Я ищу лучший способ добиться этого.
1 ответ
Вы можете попробовать Ортогональный edgeStyle.
Map<String, Object> EdgeStyle = graph.getStylesheet().getDefaultEdgeStyle();
EdgeStyle.put(mxConstants.STYLE_EDGE, mxEdgeStyle.OrthConnector);
EdgeStyle.put(mxConstants.STYLE_STROKECOLOR, "red");
EdgeStyle.put(mxConstants.STYLE_STROKEWIDTH, 2);
Это сделает ваши края похожими на приведенные ниже. Я думаю, что это должно работать и без портов.
Не забудьте включить использование стиля края в макете.
layout.setDisableEdgeStyle(false);