J'essaie de modifier les fonctions du Jgrapht pour prendre comme paramètres le couple de coordonnées d'un point (int, int). Je crée une classe et un objet point défini par (x, y) et le mettre comme paramètre de la directedGraphErreur lors du changement de paramètre de méthode vers un objet (bibliothèque jgrapht)
public class Point {
public int x;
public int y;
public Point(int x, int y)
{
this.x = x;
this.y = y;
}
@Override
public String toString() {
return ("[x="+x+" y="+y+"]");
}
}
// --------------------------------------------------------------
public class DirectedGraphDemo {
public void graph(String args[]) {
//Create the directed graph
public DirectedGraph<Point, DefaultEdge> directedGraph = new DefaultDirectedGraph<Point, DefaultEdge>(DefaultEdge.class);
// constructs a directed graph with the specified vertices and edges
directedGraph.addVertex(1,2);
directedGraph.addVertex(1,3);
directedGraph.addVertex(1,4);
directedGraph.addEdge((1,2),(1,3));
directedGraph.addEdge((1,3),(1,4));
directedGraph.addEdge((1,4),(1,2));
// computes all the strongly connected components of the directed graph
StrongConnectivityInspector sci =
new StrongConnectivityInspector(directedGraph);
List stronglyConnectedSubgraphs = sci.stronglyConnectedSubgraphs();
// prints the strongly connected components
System.out.println("Strongly connected components:");
for (int i = 0; i < stronglyConnectedSubgraphs.size(); i++) {
System.out.println(stronglyConnectedSubgraphs.get(i));
}
System.out.println();
// Prints the shortest path from vertex i to vertex c. This certainly
// exists for our particular directed graph.
System.out.println("Shortest path from (1,2) to (1,3):");
List path =
DijkstraShortestPath.findPathBetween(directedGraph, (1,2),(1,3);
System.out.println(path + "\n");
// Prints the shortest path from vertex c to vertex i. This path does
// NOT exist for our particular directed graph. Hence the path is
// empty and the variable "path"; must be null.
System.out.println("Shortest path from (1,2) to (1,3):");
path = DijkstraShortestPath.findPathBetween(directedGraph, (1,2), (1,3));
System.out.println(path);
}
}
Ce que je suis en train de faire est d'être en mesure d'utiliser:
directedGraph.addVertex(x1,y1);
directedGraph.addVertex(x2,y2);
directedGraph.addEdge((x1,y1), (x2,y2));
path = DijkstraShortestPath.findPathBetween(directedGraph,(x1,y1),(x2,y2));
Quand je cours le code, j'obtiens l'erreur "la méthode addVertex n'est pas applicable pour l'argument (int, int)" même quand le paramètre est Point
, qui est défini par (int, int). Comment dois-je procéder pour que cela fonctionne?
J'utilise le traitement qui est basé sur Java