Example usage for java.awt.geom Point2D getY

List of usage examples for java.awt.geom Point2D getY

Introduction

In this page you can find the example usage for java.awt.geom Point2D getY.

Prototype

public abstract double getY();

Source Link

Document

Returns the Y coordinate of this Point2D in double precision.

Usage

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();
}