Java by API/java.awt.geom/PathIterator

Материал из Java эксперт
Версия от 14:39, 31 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

PathIterator: currentSegment(double[] coords)

/*
Output:
move to 0.0, 0.0
line to 72.0, 0.0
line to 72.0, 72.0
line to 0.0, 72.0
line to 0.0, 0.0
close
*/
import java.awt.Shape;
import java.awt.geom.PathIterator;
import java.awt.geom.Rectangle2D;
public class MainClass {
  public static void main(String[] args) throws Exception {
    Shape s = new Rectangle2D.Double(0, 0, 72, 72);
    PathIterator pi = s.getPathIterator(null);
    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;
    }
  }
}





PathIterator: isDone()

/*
Output:
move to 0.0, 0.0
line to 72.0, 0.0
line to 72.0, 72.0
line to 0.0, 72.0
line to 0.0, 0.0
close
*/
import java.awt.Shape;
import java.awt.geom.PathIterator;
import java.awt.geom.Rectangle2D;
public class MainClass {
  public static void main(String[] args) throws Exception {
    Shape s = new Rectangle2D.Double(0, 0, 72, 72);
    PathIterator pi = s.getPathIterator(null);
    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;
    }
  }
}





PathIterator: next()

/*
Output:
move to 0.0, 0.0
line to 72.0, 0.0
line to 72.0, 72.0
line to 0.0, 72.0
line to 0.0, 0.0
close
*/
import java.awt.Shape;
import java.awt.geom.PathIterator;
import java.awt.geom.Rectangle2D;
public class MainClass {
  public static void main(String[] args) throws Exception {
    Shape s = new Rectangle2D.Double(0, 0, 72, 72);
    PathIterator pi = s.getPathIterator(null);
    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;
    }
  }
}





PathIterator.SEG_CLOSE

/*
Output:
move to 0.0, 0.0
line to 72.0, 0.0
line to 72.0, 72.0
line to 0.0, 72.0
line to 0.0, 0.0
close
*/
import java.awt.Shape;
import java.awt.geom.PathIterator;
import java.awt.geom.Rectangle2D;
public class MainClass {
  public static void main(String[] args) throws Exception {
    Shape s = new Rectangle2D.Double(0, 0, 72, 72);
    PathIterator pi = s.getPathIterator(null);
    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;
    }
  }
}





PathIterator.SEG_CUBICTO

/*
Output:
move to 0.0, 0.0
line to 72.0, 0.0
line to 72.0, 72.0
line to 0.0, 72.0
line to 0.0, 0.0
close
*/
import java.awt.Shape;
import java.awt.geom.PathIterator;
import java.awt.geom.Rectangle2D;
public class MainClass {
  public static void main(String[] args) throws Exception {
    Shape s = new Rectangle2D.Double(0, 0, 72, 72);
    PathIterator pi = s.getPathIterator(null);
    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;
    }
  }
}





PathIterator.SEG_LINETO

/*
Output:
move to 0.0, 0.0
line to 72.0, 0.0
line to 72.0, 72.0
line to 0.0, 72.0
line to 0.0, 0.0
close
*/
import java.awt.Shape;
import java.awt.geom.PathIterator;
import java.awt.geom.Rectangle2D;
public class MainClass {
  public static void main(String[] args) throws Exception {
    Shape s = new Rectangle2D.Double(0, 0, 72, 72);
    PathIterator pi = s.getPathIterator(null);
    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;
    }
  }
}





PathIterator.SEG_MOVETO

/*
Output:
move to 0.0, 0.0
line to 72.0, 0.0
line to 72.0, 72.0
line to 0.0, 72.0
line to 0.0, 0.0
close
*/
import java.awt.Shape;
import java.awt.geom.PathIterator;
import java.awt.geom.Rectangle2D;
public class MainClass {
  public static void main(String[] args) throws Exception {
    Shape s = new Rectangle2D.Double(0, 0, 72, 72);
    PathIterator pi = s.getPathIterator(null);
    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;
    }
  }
}





PathIterator.SEG_QUADTO

/*
Output:
move to 0.0, 0.0
line to 72.0, 0.0
line to 72.0, 72.0
line to 0.0, 72.0
line to 0.0, 0.0
close
*/
import java.awt.Shape;
import java.awt.geom.PathIterator;
import java.awt.geom.Rectangle2D;
public class MainClass {
  public static void main(String[] args) throws Exception {
    Shape s = new Rectangle2D.Double(0, 0, 72, 72);
    PathIterator pi = s.getPathIterator(null);
    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;
    }
  }
}