Я строю график с 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
- person F. Lumnitz   schedule 14.02.2017