/** Draw a picture with a few glasses */ public static void drawPicture1(Graphics2D g2) { Glass h1 = new Glass(100, 250, 50, 75); g2.setColor(Color.CYAN); g2.draw(h1); // Make a black house that's half the size, // and moved over 150 pixels in x direction Shape h2 = ShapeTransforms.scaledCopyOfLL(h1, 0.5, 0.5); h2 = ShapeTransforms.translatedCopyOf(h2, 150, 0); g2.setColor(Color.BLACK); g2.draw(h2); // Here's a house that's 4x as big (2x the original) // and moved over 150 more pixels to right. h2 = ShapeTransforms.scaledCopyOfLL(h2, 4, 4); h2 = ShapeTransforms.translatedCopyOf(h2, 150, 0); // We'll draw this with a thicker stroke Stroke thick = new BasicStroke(4.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL); // for hex colors, see (e.g.) http://en.wikipedia.org/wiki/List_of_colors // #002FA7 is "International Klein Blue" according to Wikipedia // In HTML we use #, but in Java (and C/C++) its 0x Stroke orig = g2.getStroke(); g2.setStroke(thick); g2.setColor(new Color(0x002FA7)); g2.draw(h2); // Draw two houses with Windows FullGlass hw1 = new FullGlass(50, 350, 40, 75); FullGlass hw2 = new FullGlass(200, 350, 200, 100); g2.draw(hw1); g2.setColor(new Color(0x8F00FF)); g2.draw(hw2); // @@@ FINALLY, SIGN AND LABEL YOUR DRAWING g2.setStroke(orig); g2.setColor(Color.BLACK); g2.drawString("A few glasses by Julian Gee", 20, 20); }
/** Draw a picture with a few glasses & full glasses */ public static void drawPicture2(Graphics2D g2) { // Draw some coffee cups. Glass large = new Glass(100, 50, 225, 150); Glass smallCC = new Glass(20, 50, 40, 30); Glass tallSkinny = new Glass(20, 150, 20, 40); Glass shortFat = new Glass(20, 250, 40, 20); g2.setColor(Color.RED); g2.draw(large); g2.setColor(Color.GREEN); g2.draw(smallCC); g2.setColor(Color.BLUE); g2.draw(tallSkinny); g2.setColor(Color.MAGENTA); g2.draw(shortFat); Glass h1 = new Glass(100, 250, 50, 75); g2.setColor(Color.CYAN); g2.draw(h1); // Make a black house that's half the size, // and moved over 150 pixels in x direction Shape h2 = ShapeTransforms.scaledCopyOfLL(h1, 0.5, 0.5); h2 = ShapeTransforms.translatedCopyOf(h2, 150, 0); g2.setColor(Color.BLACK); g2.draw(h2); // Here's a house that's 4x as big (2x the original) // and moved over 150 more pixels to right. h2 = ShapeTransforms.scaledCopyOfLL(h2, 4, 4); h2 = ShapeTransforms.translatedCopyOf(h2, 150, 0); // We'll draw this with a thicker stroke Stroke thick = new BasicStroke(4.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL); // for hex colors, see (e.g.) http://en.wikipedia.org/wiki/List_of_colors // #002FA7 is "International Klein Blue" according to Wikipedia // In HTML we use #, but in Java (and C/C++) its 0x Stroke orig = g2.getStroke(); g2.setStroke(thick); g2.setColor(new Color(0x002FA7)); g2.draw(h2); // Draw two houses with Windows FullGlass hw1 = new FullGlass(50, 350, 40, 75); FullGlass hw2 = new FullGlass(200, 350, 200, 100); g2.draw(hw1); g2.setColor(new Color(0x8F00FF)); // Rotate the second house 45 degrees around its center. Shape hw3 = ShapeTransforms.rotatedCopyOf(hw2, Math.PI / 4.0); g2.draw(hw3); // @@@ FINALLY, SIGN AND LABEL YOUR DRAWING g2.setStroke(orig); g2.setColor(Color.BLACK); g2.drawString("A bunch of glasses and full glasses by Julian Gee", 20, 20); }