Я строю график с помощью JgraphX. Ориентированный граф представляет дороги и перекрестки. Для каждого маршрута я определяю два ребра, по одному для каждого направления.Перекрывающиеся края с помощью JGraphx
В результате изображение графика имеет два края (представляющие дорогу), перекрывающиеся. Как я могу избежать этого? Есть ли в вершине какие-то вещи, например, точки привязки для краев? Если да, то как я могу их определить?
Это код, который я использую для отображения графа
package it.rex.view;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import org.jgrapht.ListenableGraph;
import org.jgrapht.ext.JGraphXAdapter;
import org.jgrapht.graph.ListenableDirectedGraph;
import com.mxgraph.layout.mxCircleLayout;
import com.mxgraph.layout.mxIGraphLayout;
import com.mxgraph.swing.mxGraphComponent;
//import grafotest1.DemoWeightedGraph.MyEdge;
import it.rex.model.Incrocio;
import it.rex.model.Strada;
import javax.swing.JScrollPane;
public class StradarioView extends JFrame {
/**
* Create the frame.
*/
public StradarioView(ListenableGraph<Incrocio, Strada> listenableGraph) {
// Graph come from JgraphT
JGraphXAdapter<Incrocio, Strada> graphAdapter =
new JGraphXAdapter<Incrocio, Strada>(listenableGraph);
mxIGraphLayout layout = new mxCircleLayout(graphAdapter);
layout.execute(graphAdapter.getDefaultParent());
mxGraphComponent graphComponent = new mxGraphComponent(graphAdapter);
getContentPane().add(graphComponent, BorderLayout.CENTER);
setTitle("Stradario");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
pack();
add(graphComponent);
}
}
Этот результат с перекрывающимися краями:
Посмотрите на 'mxParallelEdgeLayout' –