Example usage for java.awt.geom GeneralPath closePath

List of usage examples for java.awt.geom GeneralPath closePath

Introduction

In this page you can find the example usage for java.awt.geom GeneralPath closePath.

Prototype

public final synchronized void closePath() 

Source Link

Document

Closes the current subpath by drawing a straight line back to the coordinates of the last moveTo .

Usage

From source file:com.rapidminer.gui.new_plotter.engine.jfreechart.PlotInstanceLegendCreator.java

private static GeneralPath createBarShape() {
    GeneralPath barShape = new GeneralPath();
    barShape.moveTo(0, 0);//from  w ww.  j  av a2  s . c o  m
    barShape.lineTo(0, -5);
    barShape.lineTo(5, -5);
    barShape.lineTo(5, 0);
    barShape.lineTo(5, -15);
    barShape.lineTo(10, -15);
    barShape.lineTo(10, 0);
    barShape.lineTo(10, -10);
    barShape.lineTo(15, -10);
    barShape.lineTo(15, 0);
    barShape.closePath();
    return barShape;
}

From source file:Hypnosis1.java

private Shape createShape() {
    GeneralPath path = new GeneralPath();
    path.moveTo(coordinates[0], coordinates[1]);
    for (int i = 2; i < coordinates.length; i += 4)
        path.quadTo(coordinates[i], coordinates[i + 1], coordinates[i + 2], coordinates[i + 3]);
    path.closePath();
    return path;/*from   w  w  w . ja v a2s .c  om*/
}

From source file:AttributesApp.java

public AttributesApp() {
    setBackground(Color.lightGray);
    setSize(500, 200);//from   ww  w  .j  a v  a 2s.c om

    attribString = new AttributedString(text);

    GeneralPath star = new GeneralPath();
    star.moveTo(0, 0);
    star.lineTo(10, 30);
    star.lineTo(-10, 10);
    star.lineTo(10, 10);
    star.lineTo(-10, 30);
    star.closePath();
    GraphicAttribute starShapeAttr = new ShapeGraphicAttribute(star, GraphicAttribute.TOP_ALIGNMENT, false);
    attribString.addAttribute(TextAttribute.CHAR_REPLACEMENT, starShapeAttr, 0, 1);
    attribString.addAttribute(TextAttribute.FOREGROUND, new Color(255, 255, 0), 0, 1);

    int index = text.indexOf("Java Source");
    attribString.addAttribute(TextAttribute.FOREGROUND, Color.blue, index, index + 7);
    Font font = new Font("sanserif", Font.ITALIC, 40);
    attribString.addAttribute(TextAttribute.FONT, font, index, index + 7);

    loadImage();
    BufferedImage bimage = new BufferedImage(image.getWidth(this), image.getHeight(this),
            BufferedImage.TYPE_INT_ARGB);
    Graphics2D big = bimage.createGraphics();
    big.drawImage(image, null, this);
    GraphicAttribute javaImageAttr = new ImageGraphicAttribute(bimage, GraphicAttribute.TOP_ALIGNMENT, 0, 0);

    index = text.indexOf("Java");
    attribString.addAttribute(TextAttribute.CHAR_REPLACEMENT, javaImageAttr, index - 1, index);

    font = new Font("serif", Font.BOLD, 60);
    attribString.addAttribute(TextAttribute.FONT, font, index, index + 4);
    attribString.addAttribute(TextAttribute.FOREGROUND, new Color(243, 63, 163), index, index + 4); // Start and end indexes.

    index = text.indexOf("source");
    attribString.addAttribute(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON, index, index + 2);

    index = text.indexOf("and support");
    font = new Font("sanserif", Font.ITALIC, 40);
    attribString.addAttribute(TextAttribute.FONT, font, index, index + 10);

    attribString.addAttribute(TextAttribute.FOREGROUND, Color.white, index, index + 2); // Start and end indexes.
    attribString.addAttribute(TextAttribute.FOREGROUND, Color.blue, index + 3, index + 10); // Start and end indexes.
}

From source file:GeneralPathDemo2D.java

public void paint(Graphics g) {
    Graphics2D g2 = (Graphics2D) g;
    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

    g2.setPaint(Color.gray);/* w w w . j  a  v a  2 s . c  om*/
    int x = 5;
    int y = 7;

    // draw GeneralPath (polygon)
    int xPoints[] = { x, 200, x, 200 };
    int yPoints[] = { y, 200, 200, y };
    GeneralPath polygon = new GeneralPath(GeneralPath.WIND_EVEN_ODD, xPoints.length);
    polygon.moveTo(xPoints[0], yPoints[0]);
    for (int index = 1; index < xPoints.length; index++) {
        polygon.lineTo(xPoints[index], yPoints[index]);
    }
    polygon.closePath();

    g2.draw(polygon);
    g2.drawString("GeneralPath", x, 250);

}

From source file:FilledGeneralPath.java

public void paint(Graphics g) {
    Graphics2D g2 = (Graphics2D) g;
    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    int x = 5;/*from   w ww  . j a v  a2s .co  m*/
    int y = 7;

    // fill and stroke GeneralPath
    int xPoints[] = { x, 200, x, 200 };
    int yPoints[] = { y, 200, 200, y };
    GeneralPath filledPolygon = new GeneralPath(GeneralPath.WIND_EVEN_ODD, xPoints.length);
    filledPolygon.moveTo(xPoints[0], yPoints[0]);
    for (int index = 1; index < xPoints.length; index++) {
        filledPolygon.lineTo(xPoints[index], yPoints[index]);
    }
    filledPolygon.closePath();
    g2.setPaint(Color.red);
    g2.fill(filledPolygon);
    g2.setPaint(Color.black);
    g2.draw(filledPolygon);
    g2.drawString("Filled and Stroked GeneralPath", x, 250);
}

From source file:org.jfree.chart.demo.TimeSeriesDemo9.java

/**
 * A demonstration application showing how to create a simple time series chart.  This
 * example uses monthly data.//from  ww  w.j a  v  a  2s  .c o m
 *
 * @param title  the frame title.
 */
public TimeSeriesDemo9(final String title) {

    super(title);

    // create a title...
    final String chartTitle = "Test";
    final XYDataset dataset = createDataset();

    final JFreeChart chart = ChartFactory.createTimeSeriesChart(chartTitle, "Date", "Price Per Unit", dataset,
            true, true, false);

    //        final StandardLegend sl = (StandardLegend) chart.getLegend();
    //      sl.setDisplaySeriesShapes(true);

    final XYPlot plot = chart.getXYPlot();
    final XYItemRenderer r = plot.getRenderer();
    if (r instanceof StandardXYItemRenderer) {
        final StandardXYItemRenderer renderer = (StandardXYItemRenderer) r;
        renderer.setPlotShapes(true);
        renderer.setShapesFilled(true);
        renderer.setSeriesShape(0, new Ellipse2D.Double(-3.0, -3.0, 6.0, 6.0));
        renderer.setSeriesShape(1, new Rectangle2D.Double(-3.0, -3.0, 6.0, 6.0));
        final GeneralPath s2 = new GeneralPath();
        s2.moveTo(0.0f, -3.0f);
        s2.lineTo(3.0f, 3.0f);
        s2.lineTo(-3.0f, 3.0f);
        s2.closePath();
        renderer.setSeriesShape(2, s2);
        final GeneralPath s3 = new GeneralPath();
        s3.moveTo(-1.0f, -3.0f);
        s3.lineTo(1.0f, -3.0f);
        s3.lineTo(1.0f, -1.0f);
        s3.lineTo(3.0f, -1.0f);
        s3.lineTo(3.0f, 1.0f);
        s3.lineTo(1.0f, 1.0f);
        s3.lineTo(1.0f, 3.0f);
        s3.lineTo(-1.0f, 3.0f);
        s3.lineTo(-1.0f, 1.0f);
        s3.lineTo(-3.0f, 1.0f);
        s3.lineTo(-3.0f, -1.0f);
        s3.lineTo(-1.0f, -1.0f);
        s3.closePath();
        renderer.setSeriesShape(3, s3);
    }

    plot.getDomainAxis().setVisible(false);
    plot.getRangeAxis().setVisible(false);
    final ChartPanel chartPanel = new ChartPanel(chart);
    chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
    setContentPane(chartPanel);

}

From source file:DrawShapes_2008.java

/**
 * Generates a star Shape from the given location, radii, and points
 * parameters. The Shape is created by constructing a GeneralPath
 * that moves between the inner and outer rings.
 *//*from   w  w w  . j a  va 2s  . c  om*/
private static Shape generateStar(double x, double y, double innerRadius, double outerRadius, int pointsCount) {
    GeneralPath path = new GeneralPath();

    double outerAngleIncrement = 2 * Math.PI / pointsCount;

    double outerAngle = 0.0;
    double innerAngle = outerAngleIncrement / 2.0;

    x += outerRadius;
    y += outerRadius;

    float x1 = (float) (Math.cos(outerAngle) * outerRadius + x);
    float y1 = (float) (Math.sin(outerAngle) * outerRadius + y);

    float x2 = (float) (Math.cos(innerAngle) * innerRadius + x);
    float y2 = (float) (Math.sin(innerAngle) * innerRadius + y);

    path.moveTo(x1, y1);
    path.lineTo(x2, y2);

    outerAngle += outerAngleIncrement;
    innerAngle += outerAngleIncrement;

    for (int i = 1; i < pointsCount; i++) {
        x1 = (float) (Math.cos(outerAngle) * outerRadius + x);
        y1 = (float) (Math.sin(outerAngle) * outerRadius + y);

        path.lineTo(x1, y1);

        x2 = (float) (Math.cos(innerAngle) * innerRadius + x);
        y2 = (float) (Math.sin(innerAngle) * innerRadius + y);

        path.lineTo(x2, y2);

        outerAngle += outerAngleIncrement;
        innerAngle += outerAngleIncrement;
    }

    path.closePath();
    return path;
}

From source file:Main.java

/**
 * Reads a <code>Shape</code> object that has been serialised by the
 * {@link #writeShape(Shape, ObjectOutputStream)} method.
 *
 * @param stream  the input stream (<code>null</code> not permitted).
 *
 * @return The shape object (possibly <code>null</code>).
 *
 * @throws IOException  if there is an I/O problem.
 * @throws ClassNotFoundException  if there is a problem loading a class.
 *///from  ww  w .j av a 2s  .co  m
public static Shape readShape(final ObjectInputStream stream) throws IOException, ClassNotFoundException {

    if (stream == null) {
        throw new IllegalArgumentException("Null 'stream' argument.");
    }
    Shape result = null;
    final boolean isNull = stream.readBoolean();
    if (!isNull) {
        final Class c = (Class) stream.readObject();
        if (c.equals(Line2D.class)) {
            final double x1 = stream.readDouble();
            final double y1 = stream.readDouble();
            final double x2 = stream.readDouble();
            final double y2 = stream.readDouble();
            result = new Line2D.Double(x1, y1, x2, y2);
        } else if (c.equals(Rectangle2D.class)) {
            final double x = stream.readDouble();
            final double y = stream.readDouble();
            final double w = stream.readDouble();
            final double h = stream.readDouble();
            result = new Rectangle2D.Double(x, y, w, h);
        } else if (c.equals(Ellipse2D.class)) {
            final double x = stream.readDouble();
            final double y = stream.readDouble();
            final double w = stream.readDouble();
            final double h = stream.readDouble();
            result = new Ellipse2D.Double(x, y, w, h);
        } else if (c.equals(Arc2D.class)) {
            final double x = stream.readDouble();
            final double y = stream.readDouble();
            final double w = stream.readDouble();
            final double h = stream.readDouble();
            final double as = stream.readDouble(); // Angle Start
            final double ae = stream.readDouble(); // Angle Extent
            final int at = stream.readInt(); // Arc type
            result = new Arc2D.Double(x, y, w, h, as, ae, at);
        } else if (c.equals(GeneralPath.class)) {
            final GeneralPath gp = new GeneralPath();
            final float[] args = new float[6];
            boolean hasNext = stream.readBoolean();
            while (!hasNext) {
                final int type = stream.readInt();
                for (int i = 0; i < 6; i++) {
                    args[i] = stream.readFloat();
                }
                switch (type) {
                case PathIterator.SEG_MOVETO:
                    gp.moveTo(args[0], args[1]);
                    break;
                case PathIterator.SEG_LINETO:
                    gp.lineTo(args[0], args[1]);
                    break;
                case PathIterator.SEG_CUBICTO:
                    gp.curveTo(args[0], args[1], args[2], args[3], args[4], args[5]);
                    break;
                case PathIterator.SEG_QUADTO:
                    gp.quadTo(args[0], args[1], args[2], args[3]);
                    break;
                case PathIterator.SEG_CLOSE:
                    gp.closePath();
                    break;
                default:
                    throw new RuntimeException("JFreeChart - No path exists");
                }
                gp.setWindingRule(stream.readInt());
                hasNext = stream.readBoolean();
            }
            result = gp;
        } else {
            result = (Shape) stream.readObject();
        }
    }
    return result;

}

From source file:ShapeTest.java

public Shape makeShape(Point2D[] p) {
    GeneralPath s = new GeneralPath();
    s.moveTo((float) p[0].getX(), (float) p[0].getY());
    for (int i = 1; i < p.length; i++)
        s.lineTo((float) p[i].getX(), (float) p[i].getY());
    s.closePath();
    return s;//from  www.  j  av  a  2s. c o  m
}

From source file:CustomStrokes.java

/** Add a small square centered at (x,y) to the specified path */
void markPoint(GeneralPath path, float x, float y) {
    path.moveTo(x - radius, y - radius); // Begin a new sub-path
    path.lineTo(x + radius, y - radius); // Add a line segment to it
    path.lineTo(x + radius, y + radius); // Add a second line segment
    path.lineTo(x - radius, y + radius); // And a third
    path.closePath(); // Go back to last moveTo position
}