Java Swing Tutorial - Java Shape .getPathIterator (AffineTransform at, double flatness)








Syntax

Shape.getPathIterator(AffineTransform at, double flatness) has the following syntax.

PathIterator getPathIterator(AffineTransform at,    double flatness)

Example

In the following code shows how to use Shape.getPathIterator(AffineTransform at, double flatness) method.

import java.awt.Shape;
import java.awt.geom.PathIterator;
import java.awt.geom.Rectangle2D;
//from   w  w  w .java2s . c  om
public class Main {
  public static void main(String[] args) throws Exception {
    Shape s = new Rectangle2D.Double(0, 0, 72, 72);

    PathIterator pi = s.getPathIterator(null,2);

    while (pi.isDone() == false) {
      describeCurrentSegment(pi);
      pi.next();
    }

  }

  public static void describeCurrentSegment(PathIterator pi) {
    double[] coordinates = new double[6];
    int type = pi.currentSegment(coordinates);
    switch (type) {
    case PathIterator.SEG_MOVETO:
      System.out.println("move to " + coordinates[0] + ", " + coordinates[1]);
      break;
    case PathIterator.SEG_LINETO:
      System.out.println("line to " + coordinates[0] + ", " + coordinates[1]);
      break;
    case PathIterator.SEG_QUADTO:
      System.out.println("quadratic to " + coordinates[0] + ", " + coordinates[1] + ", "
          + coordinates[2] + ", " + coordinates[3]);
      break;
    case PathIterator.SEG_CUBICTO:
      System.out.println("cubic to " + coordinates[0] + ", " + coordinates[1] + ", "
          + coordinates[2] + ", " + coordinates[3] + ", " + coordinates[4] + ", " + coordinates[5]);
      break;
    case PathIterator.SEG_CLOSE:
      System.out.println("close");
      break;
    default:
      break;
    }
  }
}

The code above generates the following result.