import java.awt.*; import java.applet.Applet; import java.util.*; public class MyQuiltWorld extends PictureWorld { public void initializePictureChoices() { // Define your pictures here and in auxiliary methods. // Add your pictures to the menu via "addPictureChoice(String name, Picture pic);" addPictureChoice("quilt", quilt()); addPictureChoice("quiltQuadrant", quiltQuadrant()); addPictureChoice("star(yellow,red,blue)", star(Color.yellow, Color.red, Color.blue)); addPictureChoice("star(red,green,blue)", star(Color.red,Color.green,Color.blue)); addPictureChoice("starQuadrant(yellow,red,blue)", starQuadrant(Color.yellow, Color.red, Color.blue)); addPictureChoice("starQuadrant(red,green,blue)", starQuadrant(Color.red,Color.green,Color.blue)); addPictureChoice("patch(red)", patch(Color.red)); addPictureChoice("triangles(green,blue)", triangles(Color.green,Color.blue)); } public Picture quilt () { return rotations(quiltQuadrant()); } public Picture quiltQuadrant () { return corner(star(Color.yellow, Color.red, Color.blue), star(Color.red,Color.green,Color.blue)); } public Picture star(Color inner, Color middle, Color outer) { return rotations(starQuadrant(inner,middle,outer)); } public Picture starQuadrant(Color squares, Color tri1, Color tri2) { return corner(patch(squares),triangles(tri1,tri2)); } // Auxiliary methods public Picture fourPics (Picture p1, Picture p2, Picture p3, Picture p4) { return above(beside(p1,p2),beside(p3,p4)); } public Picture fourSame (Picture p) { return fourPics(p,p,p,p); } public Picture rotations (Picture p) { return fourPics(clockwise270(p),p,clockwise180(p),clockwise90(p)); } public Picture corner (Picture p1, Picture p2) { return fourPics(p2,p2,p1,p2); } // Methods for generating the primitive pictures for this problem. // You do not have to understand these in order to do the problem set. public Picture patch(Color c) { return overlay (new Rect(0.0, 0.0, 1.0, 1.0, Color.black, false), new Rect(0.0, 0.0, 1.0, 1.0, c, true)); } public Picture triangles(Color c1, Color c2) { return overlay (new Rect(0.0, 0.0, 1.0, 1.0, Color.black, false), overlay (new Line(0.0, 1.0, 1.0, 0.0, Color.black), overlay(tri(c1, true), clockwise180(tri(c2, true))))); } public Picture tri(Color c, boolean isFilled) { Poly triPoly = new Poly (c, isFilled); triPoly.addPoint(0.0, 0.0); triPoly.addPoint(0.0, 1.0); triPoly.addPoint(1.0, 0.0); return triPoly; } }