Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- System.setProperty("gs.ui.renderer", "org.graphstream.ui.j2dviewer.J2DGraphRenderer");
- org.graphstream.graph.Graph g = new SingleGraph("Test");
- g.setStrict(false);
- g.setAutoCreate(true);
- int i = 1;
- for (Edge<Estacao, String> edge : grafo.edges()) {
- try {
- org.graphstream.graph.Edge e = g.addEdge(edge.getElement() + " " + i, edge.getVOrig().toString(), edge.getVDest().toString(), true);
- e.addAttribute("x", edge.getVOrig().getLatitude());
- e.addAttribute("y", edge.getVOrig().getLongitude());
- e.addAttribute("x", edge.getVDest().getLatitude());
- e.addAttribute("y", edge.getVDest().getLongitude());
- e.addAttribute("ui.label", edge.getWeight());
- i++;
- } catch (EdgeRejectedException e) {
- }
- }
- for (Node node : g) {
- node.addAttribute("ui.label", node.getId());
- }
- final Viewer viewer = g.display();
- View view = viewer.getDefaultView();
- view.getCamera().setViewPercent(1);
- viewer.enableAutoLayout();
- view.getCamera().setViewPercent(0.5);
- ((Component) view).addMouseWheelListener(e -> {
- e.consume();
- int i1 = e.getWheelRotation();
- double factor = Math.pow(1.25, i1);
- Camera cam = view.getCamera();
- double zoom = cam.getViewPercent() * factor;
- Point2 pxCenter = cam.transformGuToPx(cam.getViewCenter().x, cam.getViewCenter().y, 0);
- Point3 guClicked = cam.transformPxToGu(e.getX(), e.getY());
- double newRatioPx2Gu = cam.getMetrics().ratioPx2Gu/factor;
- double x = guClicked.x + (pxCenter.x - e.getX())/newRatioPx2Gu;
- double y = guClicked.y - (pxCenter.y - e.getY())/newRatioPx2Gu;
- cam.setViewCenter(x, y, 0);
- cam.setViewPercent(zoom);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement