Java by API/java.awt/Shape

Материал из Java эксперт
Перейти к: навигация, поиск

Shape: getPathIterator(AffineTransform at)

   <source lang="java">

/* 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;
   }
 }

}

      </source>