import java.awt.geom.*; import java.awt.*; import java.util.ArrayList; public class Plus implements FractalObject { private Point2D.Double center; private double armLength; private static double armFraction = 2.1; public Plus(Point2D.Double center_, double armLength_) { center = center_; armLength = armLength_; } public void draw(Graphics2D g2) { g2.draw(new Line2D.Double(center.getX() - armLength, center.getY(), center.getX() + armLength, center.getY())); g2.draw(new Line2D.Double(center.getX(), center.getY() - armLength, center.getX(), center.getY() + armLength)); } public ArrayList addChildren(ArrayList cur) { cur.add(new Plus(new Point2D.Double((center.getX() + (center.getX() + armLength)) / 2.0, center.getY()), armLength / armFraction)); cur.add(new Plus(new Point2D.Double((center.getX() + (center.getX() - armLength)) / 2.0, center.getY()), armLength / armFraction)); cur.add(new Plus(new Point2D.Double(center.getX(), (center.getY() + (center.getY() + armLength)) / 2.0), armLength / armFraction)); cur.add(new Plus(new Point2D.Double(center.getX(), (center.getY() + (center.getY() - armLength)) / 2.0), armLength / armFraction)); return cur; } public void setParameter(double armFraction_) { armFraction = armFraction_; } }