/home/evankemp/NetBeansProjects/CS1/src/npw/Invention1.java
  1 /*
  2  * Invention 1
  3  */
  4 package npw;
  5 
  6 import java.awt.Color;
  7 import painter.SPainter;
  8 import shapes.SCircle;
  9 import shapes.SSquare;
 10 
 11 /**
 12  *
 13  * @author evankemp
 14  */
 15 public class Invention1 {
 16 
 17     /**
 18      * @param args the command line arguments
 19      */
 20     public static void main(String[] args) {
 21         int nrOfRows = 10;
 22         int nrOfColumns = 9;
 23         int circleRadius = 50;
 24 
 25         int height = nrOfRows * circleRadius * 2;
 26         int width = nrOfColumns * circleRadius * 4;
 27 
 28         SPainter me = new SPainter("Invention1", width + circleRadius, height + circleRadius);
 29         SCircle circle = new SCircle(circleRadius);
 30 
 31         paintTheImage(nrOfRows, nrOfColumns, me, circle);
 32     }
 33 
 34     private static void paintTheImage(int nrOfRows, int nrOfColumns, SPainter me, SCircle circle) {
 35 
 36         me.mlt(((2 * nrOfColumns - 1) / 2.0) * circle.diameter());
 37         me.mbk(((nrOfRows - 1) / 2.0) * circle.diameter());
 38 
 39         int i = 1;
 40         while (i <= nrOfRows) {
 41             paintOneRow(me, nrOfColumns, circle);
 42             me.mfd(circle.diameter());
 43             i = i + 1;
 44         }
 45 
 46         me.mrt(((nrOfColumns - 1) / 2.0) * circle.diameter());
 47         me.mfd(((nrOfRows - 1) / 2.0) * circle.diameter());
 48     }
 49 
 50     private static void paintOneRow(SPainter me, int nrOfColumns, SCircle circle) {
 51         int i = 1;
 52         while (i <= nrOfColumns) {
 53             paintOnePattern(me, circle, nrOfColumns);
 54             me.mrt(circle.diameter());
 55             i = i + 1;
 56         }
 57         me.mlt(nrOfColumns * circle.diameter() * 2);
 58     }
 59 
 60     private static void paintOnePattern(SPainter me, SCircle circle, int nrOfColumns) {
 61         SSquare square = circle.inscribingSquare();
 62         me.setColor(new Color(102, 0, 0));
 63         me.paint(circle);
 64         me.setColor(Color.BLACK);
 65         me.setBrushWidth(3);
 66         me.draw(circle);
 67         int i = 1;
 68         while (i < 3) {
 69             if (i % 2 == 0) {
 70                 me.mrt(circle.diameter());
 71                 me.setColor(new Color(255, 204, 204));
 72                 square.s2();
 73                 me.tr(45);
 74                 me.paint(square);
 75                 me.draw(circle);
 76                 me.setColor(new Color(204, 102, 0));
 77                 me.draw(square);
 78                 me.tl(45);
 79                 circle.s5();
 80                 me.paint(circle);
 81                 me.setColor(new Color(102, 0, 0));
 82                 me.draw(circle);
 83                 square.x2();
 84                 circle.x5();
 85             } else {
 86                 me.setColor(new Color(255, 204, 204));
 87                 square.s2();
 88                 me.paint(square);
 89                 me.draw(circle);
 90                 me.setColor(new Color(204, 102, 0));
 91                 me.draw(square);
 92                 circle.s5();
 93                 me.paint(circle);
 94                 me.setColor(new Color(102, 0, 0));
 95                 me.draw(circle);
 96                 square.x2();
 97                 circle.x5();
 98             }
 99             i = i + 1;
100         }
101     }
102 
103 }
104