List of usage examples for java.awt.geom Point2D getY
public abstract double getY();
From source file:util.ModSpringLayout.java
protected void moveNodes() { synchronized (getSize()) { try {// ww w . j a v a 2 s .c om for (V v : getGraph().getVertices()) { if (isLocked(v)) { continue; } SpringVertexData vd = springVertexData.get(v); if (vd == null) { continue; } Point2D xyd = transform(v); vd.dx += vd.repulsiondx + vd.edgedx; vd.dy += vd.repulsiondy + vd.edgedy; // keeps nodes from moving any faster than 5 per time unit xyd.setLocation(xyd.getX() + Math.max(-5, Math.min(5, vd.dx)), xyd.getY() + Math.max(-5, Math.min(5, vd.dy))); Dimension d = getSize(); int width = d.width; int height = d.height; if (xyd.getX() < 0) { xyd.setLocation(0, xyd.getY()); } else if (xyd.getX() > width) { xyd.setLocation(width, xyd.getY()); } if (xyd.getY() < 0) { xyd.setLocation(xyd.getX(), 0); } else if (xyd.getY() > height) { xyd.setLocation(xyd.getX(), height); } } } catch (ConcurrentModificationException cme) { moveNodes(); } } }
From source file:Visualizer.SpringLayoutWeighted.java
protected void moveNodes() { synchronized (getSize()) { try {/* w ww . ja v a 2s . co m*/ for (Functionality.Node v : getGraph().getVertices()) { if (isLocked(v)) continue; SpringVertexData vd = springVertexData.get(v); if (vd == null) continue; Point2D xyd = transform(v); vd.dx += vd.repulsiondx + vd.edgedx; vd.dy += vd.repulsiondy + vd.edgedy; // keeps nodes from moving any faster than 5 per time unit xyd.setLocation(xyd.getX() + Math.max(-5, Math.min(5, vd.dx)), xyd.getY() + Math.max(-5, Math.min(5, vd.dy))); Dimension d = getSize(); int width = d.width; int height = d.height; if (xyd.getX() < 0) { xyd.setLocation(0, xyd.getY()); } else if (xyd.getX() > width) { xyd.setLocation(width, xyd.getY()); } if (xyd.getY() < 0) { xyd.setLocation(xyd.getX(), 0); } else if (xyd.getY() > height) { xyd.setLocation(xyd.getX(), height); } } } catch (ConcurrentModificationException cme) { moveNodes(); } } }
From source file:figs.treeVisualization.gui.TimeAxisTree2DPanel.java
/** * * <P>//from w w w . j a va2 s.co m * The tree area needs to be set before this is called! */ protected void drawDatesToLeafs(Graphics2D g2, double cursor, Rectangle2D plotArea) { double ol = fDateAxis.getTickMarkOutsideLength(); for (Iterator<Element> li = fLeafNodes.iterator(); li.hasNext();) { Element clade = li.next(); Calendar leafDate = fLeafDates.get(clade); /** * Check to see if this clade even has a date; not all clades have to have them. */ if (leafDate == null) { continue; } double dateY = fDateAxis.dateToJava2D(leafDate.getTime(), plotArea); Point2D datePt = new Point2D.Double(cursor - ol, dateY); /** * If we are drawing a phylogram then, * we need to draw this further towards the tree. */ Point2D nodePt = this.fTreePainter.cladeToJava2D(clade, this.fLeftTreeArea); Point2D lfPt = new Point2D.Double(plotArea.getX(), nodePt.getY()); g2.setPaint(this.getCladeBranchColor(clade)); g2.setStroke(this.getCladeBranchStroke(clade)); g2.draw(new Line2D.Double(lfPt, datePt)); } }
From source file:edu.uci.ics.jung.algorithms.layout.ISOMLayout.java
private synchronized void adjustVertex(V v, Point2D tempXYD) { queue.clear();//from ww w . j a v a 2 s. co m ISOMVertexData ivd = getISOMVertexData(v); ivd.distance = 0; ivd.visited = true; queue.add(v); V current; while (!queue.isEmpty()) { current = queue.remove(0); ISOMVertexData currData = getISOMVertexData(current); Point2D currXYData = transform(current); double dx = tempXYD.getX() - currXYData.getX(); double dy = tempXYD.getY() - currXYData.getY(); double factor = adaption / Math.pow(2, currData.distance); currXYData.setLocation(currXYData.getX() + (factor * dx), currXYData.getY() + (factor * dy)); if (currData.distance < radius) { Collection<V> s = getGraph().getNeighbors(current); while (true) { try { for (V child : s) { ISOMVertexData childData = getISOMVertexData(child); if (childData != null && !childData.visited) { childData.visited = true; childData.distance = currData.distance + 1; queue.add(child); } } break; } catch (ConcurrentModificationException cme) { } } } } }
From source file:de.fhg.igd.mapviewer.waypoints.CustomWaypointPainter.java
private void processWaypoint(W w, int minX, int minY, int width, int height, PixelConverter converter, int zoom, Graphics2D g) {//from ww w.j a v a2s . c om try { Point2D point = converter.geoToPixel(w.getPosition(), zoom); int x = (int) (point.getX() - minX); int y = (int) (point.getY() - minY); PixelConverter converterWrapper = new TranslationPixelConverterDecorator(converter, (int) point.getX(), (int) point.getY()); g.translate(x, y); Rectangle gBounds = new Rectangle(minX - (int) point.getX(), minY - (int) point.getY(), width, height); renderer.paintWaypoint(g, converterWrapper, zoom, w, gBounds); g.translate(-x, -y); } catch (IllegalGeoPositionException e) { // waypoint not in map bounds or position invalid // log.warn("Error painting waypoint", e); } }
From source file:org.jfree.chart.demo.MouseListenerDemo4.java
public void chartMouseClicked(ChartMouseEvent chartmouseevent) { int i = chartmouseevent.getTrigger().getX(); int j = chartmouseevent.getTrigger().getY(); System.out.println("x = " + i + ", y = " + j); Point2D point2d = chartPanel.translateScreenToJava2D(new Point(i, j)); XYPlot xyplot = (XYPlot) chart.getPlot(); ChartRenderingInfo chartrenderinginfo = chartPanel.getChartRenderingInfo(); java.awt.geom.Rectangle2D rectangle2d = chartrenderinginfo.getPlotInfo().getDataArea(); ValueAxis valueaxis = xyplot.getDomainAxis(); org.jfree.ui.RectangleEdge rectangleedge = xyplot.getDomainAxisEdge(); ValueAxis valueaxis1 = xyplot.getRangeAxis(); org.jfree.ui.RectangleEdge rectangleedge1 = xyplot.getRangeAxisEdge(); double d = valueaxis.java2DToValue(point2d.getX(), rectangle2d, rectangleedge); double d1 = valueaxis1.java2DToValue(point2d.getY(), rectangle2d, rectangleedge1); System.out.println("Chart: x = " + d + ", y = " + d1); }
From source file:util.ModSpringLayout1.java
protected void relaxEdges() { try {/*from w w w .jav a 2s . c o m*/ for (E e : getGraph().getEdges()) { V v1 = getAVertex(e); V v2 = getGraph().getOpposite(v1, e); Point2D p1 = transform(v1); Point2D p2 = transform(v2); if (p1 == null || p2 == null) { continue; } double vx = p1.getX() - p2.getX(); double vy = p1.getY() - p2.getY(); double len = Math.sqrt(vx * vx + vy * vy); SpringEdgeData<E> sed = getSpringEdgeData(e); if (sed == null) { continue; } double desiredLen = sed.length; // round from zero, if needed [zero would be Bad.]. len = (len == 0) ? .0001 : len; double f = force_multiplier * (desiredLen - len) / len; f = f * Math.pow(stretch, (getGraph().degree(v1) + getGraph().degree(v2) - 2)); // the actual movement distance 'dx' is the force multiplied by the // distance to go. double dx = f * vx; double dy = f * vy; SpringVertexData v1D, v2D; v1D = getSpringVertexData(v1); v2D = getSpringVertexData(v2); sed.f = f; v1D.edgedx += dx; v1D.edgedy += dy; v2D.edgedx += -dx; v2D.edgedy += -dy; } } catch (ConcurrentModificationException cme) { relaxEdges(); } }
From source file:lu.lippmann.cdb.graph.GenericGraphViewImpl.java
/** * {@inheritDoc}//from ww w . ja v a2 s. c o m */ @Override public void fitGraphToSubPanel(double panelWidth, double panelHeigth, final double ratioPanel) { int w = 10; int h = 10; vv.setPreferredSize(new Dimension((int) panelWidth, (int) panelHeigth)); vv.setMinimumSize(new Dimension((int) panelWidth, (int) panelHeigth)); vv.setMaximumSize(new Dimension((int) panelWidth, (int) panelHeigth)); double minX = Integer.MAX_VALUE, maxX = Integer.MIN_VALUE, minY = Integer.MAX_VALUE, maxY = Integer.MIN_VALUE; final MutableTransformer viewTransformer = vv.getRenderContext().getMultiLayerTransformer() .getTransformer(Layer.VIEW); //final MutableTransformer layoutTransformer = vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.LAYOUT); //Reset graph layout (zoom level & translation) resetLayout(); final Graph<V, E> graph = vv.getModel().getGraphLayout().getGraph(); if (graph.getVertices().size() == 0) { return; } else if (graph.getVertices().size() == 1) { final V n = graph.getVertices().iterator().next(); final Point2D point = vv.getModel().getGraphLayout().transform(n); //center of the node minX = point.getX(); maxX = point.getX(); minY = point.getY(); maxY = point.getY(); } else { for (final V n : graph.getVertices()) { final Point2D point = vv.getModel().getGraphLayout().transform(n); //center of the node double nodeMinX = point.getX() - w / 2; double nodeMaxX = point.getX() + w / 2; double nodeMinY = point.getY() - h / 2; double nodeMaxY = point.getY() + h / 2; if (nodeMinX < minX) { minX = nodeMinX; } if (nodeMaxX > maxX) { maxX = nodeMaxX; } if (nodeMinY < minY) { minY = nodeMinY; } if (nodeMaxY > maxY) { maxY = nodeMaxY; } } } final int graphWidth = (int) (maxX - minX); final int graphHeigth = (int) (maxY - minY); //System.out.println("Graph heigth : " + graphHeigth); //System.out.println("Graph graphWidth : " + graphWidth); final double scale1 = ratioPanel / 100.0d * panelWidth / graphWidth; final double scale2 = panelHeigth / graphHeigth; final double ratio = Math.min(Math.min(scale1, scale2), 1.0f); //offset margin //final double ratio = Math.min(scale1,scale2); //offset margin //System.out.println("Ratio used : " + ratio); viewTransformer.scale(ratio, ratio, new Point2D.Double()); viewTransformer.translate(((panelWidth * ratioPanel / 100.0f - graphWidth * ratio) / 2.0f) / ratio - minX, ((panelHeigth - graphHeigth * ratio) / 2.0f) / ratio - minY); }
From source file:util.ModSpringLayout1.java
protected void calculateRepulsion() { try {/*from w w w . j av a 2s . c om*/ for (V v : getGraph().getVertices()) { if (isLocked(v)) { continue; } SpringVertexData svd = getSpringVertexData(v); if (svd == null) { continue; } double dx = 0, dy = 0; for (V v2 : getGraph().getVertices()) { if (v == v2) { continue; } Point2D p = transform(v); Point2D p2 = transform(v2); if (p == null || p2 == null) { continue; } double vx = p.getX() - p2.getX(); double vy = p.getY() - p2.getY(); double distance = vx * vx + vy * vy; if (distance == 0) { dx += Math.random(); dy += Math.random(); } else if (distance < repulsion_range * repulsion_range) { double factor = 1; dx += factor * vx / Math.pow(distance, 2); dy += factor * vy / Math.pow(distance, 2); } } double dlen = dx * dx + dy * dy; if (dlen > 0) { dlen = Math.sqrt(dlen) / 2; svd.repulsiondx += dx / dlen; svd.repulsiondy += dy / dlen; } } } catch (ConcurrentModificationException cme) { calculateRepulsion(); } }
From source file:thesaurusEditor.gui.graph.MainGraph.java
public void zoomToVertex(Konzept k) { Layout<Konzept, EdgeClass> layout = vv.getGraphLayout(); Point2D newCenter = layout.transform(k); Point2D lvc = vv.getRenderContext().getMultiLayerTransformer().inverseTransform(vv.getCenter()); final double dx = (lvc.getX() - newCenter.getX()) / 100; final double dy = (lvc.getY() - newCenter.getY()) / 100; vv.getPickedVertexState().pick(k, true); Runnable animator = new Runnable() { public void run() { for (int i = 0; i < 100; i++) { vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.LAYOUT).translate(dx, dy); try { Thread.sleep(5); } catch (InterruptedException ex) { }// www.j av a 2s. com } } }; Thread thread = new Thread(animator); thread.start(); }