Advertisement
Guest User

Untitled

a guest
Nov 17th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.96 KB | None | 0 0
  1.         System.setProperty("gs.ui.renderer", "org.graphstream.ui.j2dviewer.J2DGraphRenderer");
  2.         org.graphstream.graph.Graph g = new SingleGraph("Test");
  3.  
  4.         g.setStrict(false);
  5.         g.setAutoCreate(true);
  6.  
  7.         int i = 1;
  8.         for (Edge<Estacao, String> edge : grafo.edges()) {
  9.             try {
  10.                 org.graphstream.graph.Edge e = g.addEdge(edge.getElement() + " " + i, edge.getVOrig().toString(), edge.getVDest().toString(), true);
  11.                 e.addAttribute("x", edge.getVOrig().getLatitude());
  12.                 e.addAttribute("y", edge.getVOrig().getLongitude());
  13.                 e.addAttribute("x", edge.getVDest().getLatitude());
  14.                 e.addAttribute("y", edge.getVDest().getLongitude());
  15.                 e.addAttribute("ui.label", edge.getWeight());
  16.                 i++;
  17.             } catch (EdgeRejectedException e) {
  18.  
  19.             }
  20.         }
  21.  
  22.         for (Node node : g) {
  23.             node.addAttribute("ui.label", node.getId());
  24.         }
  25.  
  26.  
  27.         final Viewer viewer = g.display();
  28.  
  29.         View view = viewer.getDefaultView();
  30.         view.getCamera().setViewPercent(1);
  31.         viewer.enableAutoLayout();
  32.         view.getCamera().setViewPercent(0.5);
  33.         ((Component) view).addMouseWheelListener(e -> {
  34.             e.consume();
  35.             int i1 = e.getWheelRotation();
  36.             double factor = Math.pow(1.25, i1);
  37.             Camera cam = view.getCamera();
  38.             double zoom = cam.getViewPercent() * factor;
  39.             Point2 pxCenter  = cam.transformGuToPx(cam.getViewCenter().x, cam.getViewCenter().y, 0);
  40.             Point3 guClicked = cam.transformPxToGu(e.getX(), e.getY());
  41.             double newRatioPx2Gu = cam.getMetrics().ratioPx2Gu/factor;
  42.             double x = guClicked.x + (pxCenter.x - e.getX())/newRatioPx2Gu;
  43.             double y = guClicked.y - (pxCenter.y - e.getY())/newRatioPx2Gu;
  44.             cam.setViewCenter(x, y, 0);
  45.             cam.setViewPercent(zoom);
  46.         });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement