Source code: com/arranger/jarl/test/TraitTest3.java
1 package com.arranger.jarl.test;
2
3 import com.arranger.jarl.util.IOUtil;
4 import com.arranger.jarl.util.RandomUtil;
5
6 import java.awt.*;
7 import java.awt.geom.FlatteningPathIterator;
8 import java.awt.geom.GeneralPath;
9 import java.awt.geom.PathIterator;
10 import java.awt.geom.Point2D;
11 import java.io.File;
12 import java.util.ArrayList;
13
14 /**
15 * TraitTest2 created on Feb 21, 2003
16 */
17 public class TraitTest3 extends TraitTest1 {
18
19 public void testTrait3() throws Exception {
20
21 Image image = createImage();
22 Graphics2D graphics2D = (Graphics2D)image.getGraphics();
23
24 GeneralPath generalPath = new GeneralPath();
25 generalPath.moveTo(0, 0);
26 for (int index = 0; index < 5; index++) {
27 generalPath.quadTo(
28 RandomUtil.getRandom(m_imageWidth),
29 RandomUtil.getRandom(m_imageHeight),
30 RandomUtil.getRandom(m_imageWidth),
31 RandomUtil.getRandom(m_imageHeight)
32 );
33 }
34
35 java.util.List tempPoints = new ArrayList();
36 PathIterator pi = generalPath.getPathIterator(null, 0.01);
37 while (!pi.isDone()) {
38 float[] pt = new float[6];
39 switch (pi.currentSegment(pt)) {
40 case FlatteningPathIterator.SEG_MOVETO:
41 case FlatteningPathIterator.SEG_LINETO:
42 tempPoints.add(new Point2D.Float(pt[0], pt[1]));
43 }
44 pi.next();
45 }
46
47 Point2D[] points = new Point2D[tempPoints.size()];
48 points = (Point2D[])tempPoints.toArray(points);
49
50 for (int index = 0; index < points.length; index++) {
51 System.out.println(index + " --> " + points[index].toString());
52 }
53
54 generalPath = new GeneralPath();
55 generalPath.moveTo(0, 0);
56 for (int index = 0; index < points.length; index++) {
57 Point2D point2D = points[index];
58 generalPath.lineTo((float)point2D.getX(), (float)point2D.getY());
59 }
60
61 graphics2D.setPaint(Color.blue);
62 graphics2D.draw(generalPath);
63 IOUtil.save(image, new File("testTrait.bmp"));
64 }
65 }