import java.awt.*; import java.applet.Applet; import java.util.*; public class TopDownWorld extends PictureWorld { public void initializePictureChoices() { Picture twoWedges = overlay (wedge(Color.green), flipDiagonally(wedge(Color.blue))); this.addPictureChoice("UpperDiagCopy", upperDiagCopy(twoWedges)); this.addPictureChoice("UpperDiagCopy2", upperDiagCopy2(twoWedges)); this.addPictureChoice("UpperDiagCopy3", upperDiagCopy3(twoWedges)); this.addPictureChoice("twoDiags", twoDiags(twoWedges)); this.addPictureChoice("fourDiags", fourDiags(twoWedges)); this.addPictureChoice("fourDiags2", fourDiags2(twoWedges)); this.addPictureChoice("topDown", makeComplexPic(twoWedges)); } public Picture fourPics (Picture p1, Picture p2, Picture p3, Picture p4) { return above(beside(p1,p2), beside(p3,p4)); } public Picture rotations (Picture p) { return fourPics(clockwise270(p), p, clockwise180(p), clockwise90(p)); } public Picture upperDiagCopy(Picture p){ return fourPics(empty(), p, empty(), empty()); } public Picture upperDiagCopy2(Picture p){ return upperDiagCopy(upperDiagCopy(p)); } public Picture upperDiagCopy3(Picture p){ return upperDiagCopy(upperDiagCopy2(p)); } public Picture twoDiags(Picture p){ return overlay(upperDiagCopy(p), p); } public Picture fourDiags(Picture p){ return overlay(upperDiagCopy3(p), overlay (upperDiagCopy2(p), overlay(upperDiagCopy(p), p))); } public Picture fourDiags2(Picture p){ return overlay(upperDiagCopy(upperDiagCopy(upperDiagCopy(p))), overlay(upperDiagCopy(upperDiagCopy(p)), overlay(upperDiagCopy(p), p))); } public Picture makeComplexPic(Picture p){ return rotations(fourDiags(p)); } public Picture wedge (Color c) { Poly w = new Poly(c, true); w.addPoint(0.0, 0.0); w.addPoint(0.5, 0.0); w.addPoint(0.5, 0.5); return w; } }