Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中,如何为属于图的顶点指定坐标?_Java_User Interface_Graph_Coordinates_Dijkstra - Fatal编程技术网

在Java中,如何为属于图的顶点指定坐标?

在Java中,如何为属于图的顶点指定坐标?,java,user-interface,graph,coordinates,dijkstra,Java,User Interface,Graph,Coordinates,Dijkstra,我正在为一个需要很快完成的项目构建一个简单的GPS。为此,我需要实现Dijkstra的算法,使汽车沿着特定的路径行驶,如图所示。该算法已经完成,功能正常,但我需要给顶点(交点)一些坐标,以便汽车知道去哪里 如何给出顶点的x和y坐标?我知道回答这个问题可能会很复杂,但任何帮助都将不胜感激。提前谢谢 顶点类代码如下。不要在意法国人(诺伊德): import java.util.ArrayList; import java.util.List; public class Noeud imp

我正在为一个需要很快完成的项目构建一个简单的GPS。为此,我需要实现Dijkstra的算法,使汽车沿着特定的路径行驶,如图所示。该算法已经完成,功能正常,但我需要给顶点(交点)一些坐标,以便汽车知道去哪里

如何给出顶点的x和y坐标?我知道回答这个问题可能会很复杂,但任何帮助都将不胜感激。提前谢谢

顶点类代码如下。不要在意法国人(诺伊德):

    import java.util.ArrayList;
import java.util.List;
 
public class Noeud implements Comparable<Noeud> {
 
 private String numero;//identifier les noeuds
 private List<Route> listeVoisins;
 private boolean visiter;
 private Noeud predecesseur;//predecesseur du noeud
 private double distance = Double.MAX_VALUE; //distance depuis la source 
                                             //initialiser toutes les distances a l'nfini (max_value est la plus grande valeur possible)
                                             //il faut initiliaser la variable avec un valeur sinon elle sera mise a 0  
 
 public Noeud(String numero) {  //est appelé par la methode DijkstraMain
 this.numero = numero;
 this.listeVoisins = new ArrayList<>();
 }
 
 public void ajoutVoisin(Route route) {
 this.listeVoisins.add(route);
 }
 
 /*Getters & Setters*/
 public String getNumero() {
 return numero;
 }
 
 public void setNumero(String numero) {
 this.numero = numero;
 }
 
 public List<Route> getListeVoisins() {
 return listeVoisins;
 }
 
 public void setListeVoisins(List<Route> listeVoisins) {
 this.listeVoisins = listeVoisins;
 }
 
 public boolean estVisiter() {
 return visiter;
 }
 
 public void setVisiter(boolean visiter) {
 this.visiter = visiter;
 }
 
 public Noeud getPredecesseur() {
 return predecesseur;
 }
 
 public void setPredecesseur(Noeud predecesseur) {
 this.predecesseur = predecesseur;
 }
 
 public double getDistance() {
 return distance;
 }
 
 public void setDistance(double distance) {
 this.distance = distance;
 }
 
 @Override
 public String toString() {//permet d'afficher les noms
 return this.numero;
 }
 
 @Override    // We need this method if we want to use PriorityQueues instead of LinkedLists to store our edges
 public int compareTo(Noeud autreNoeud) {
 return Double.compare(this.distance, autreNoeud.getDistance());//remplacer getDistance par distnace
 }
}
public class DijkstraMain {
 

 public static void main(String[] args) {
 
 ///create vertices
 Noeud noeud1 = new Noeud("1");
 Noeud noeud2 = new Noeud("2");
 Noeud noeud3 = new Noeud("3");
 Noeud noeud4 = new Noeud("4");
 Noeud noeud5 = new Noeud("5");
 Noeud noeud6 = new Noeud("6");
 
 //Create graph
 //Route poids, noeud s name, noeud d name
 noeud1.ajoutVoisin(new Route(15,noeud1,noeud4)); 
 noeud1.ajoutVoisin(new Route(7,noeud1,noeud2));
 noeud2.ajoutVoisin(new Route(7,noeud2,noeud3));
 noeud2.ajoutVoisin(new Route(15,noeud2,noeud5));
 noeud3.ajoutVoisin(new Route(15,noeud3,noeud6));
 noeud4.ajoutVoisin(new Route(7,noeud4,noeud5));
 noeud5.ajoutVoisin(new Route(7,noeud5,noeud6));
 
 DijkstraAlgo cheminOptimal = new DijkstraAlgo();
 cheminOptimal.Algorithme(noeud1);
 
 System.out.println("Plus court chemin du point de départ vers l'intersection les autres intersections");
 
 System.out.println("\nDistance optimale vers l'intersection 2: "+noeud2.getDistance());
 System.out.println("Distance optimale vers l'intersection 3: "+noeud3.getDistance());
 System.out.println("Distance optimale vers l'intersection 4: "+noeud4.getDistance());
 System.out.println("Distance optimale vers l'intersection 5: "+noeud5.getDistance());
 System.out.println("Distance optimale vers l'intersection 6: "+noeud6.getDistance());
 
 System.out.println("\nLes chemins choisis");
 
 System.out.println("\nChemins choisis vers l'intersection 2: "+cheminOptimal.getShortestPathTo(noeud2));
 System.out.println("Chemins choisis vers l'intersection 3: "+cheminOptimal.getShortestPathTo(noeud3));
 System.out.println("Chemins choisis vers l'intersection 4: "+cheminOptimal.getShortestPathTo(noeud4));
 System.out.println("Chemins choisis vers l'intersection 5: "+cheminOptimal.getShortestPathTo(noeud5));
 System.out.println("Chemins choisis vers l'intersection 6: "+cheminOptimal.getShortestPathTo(noeud6));
 
 }
}