1 package npw; 2 3 import painter.SPainter; 4 import shapes.SCircle; 5 import shapes.SSquare; 6 7 import javax.swing.*; 8 import java.awt.*; 9 10 public class Dots { 11 // THE SOLUTION TO THE BLUE DOT PROBLEM 12 13 public void paintCircles(SPainter painter, SCircle dot, SCircle dot2, SCircle dot3, SCircle dot4) 14 { 15 // center dot 16 painter.moveToCenter(); 17 painter.setColor(Color.cyan); 18 painter.paint(dot); 19 20 // bottom right (above blue circle) 21 22 painter.tr(); 23 painter.mfd(100); 24 painter.tr(); 25 painter.mfd(100); 26 painter.setColor(Color.darkGray); 27 painter.paint(dot2); 28 29 // bottom right circle 30 31 painter.tl(); 32 painter.mfd(100); 33 painter.tr(); 34 painter.mfd(75); 35 painter.tr(); 36 painter.mfd(20); 37 painter.setColor(Color.blue); 38 painter.paint(dot3); 39 40 // bottom left circle 41 42 painter.mfd(370); 43 painter.setColor(Color.blue); 44 painter.paint(dot3); 45 46 // turn right (facing up) abover bottom left circle 47 painter.tr(); 48 painter.mfd(75); 49 painter.tr(); 50 painter.mfd(75); 51 painter.setColor(Color.darkGray); 52 painter.paint(dot2); 53 54 // return to center 55 painter.moveToCenter(); 56 57 // top left circle 58 painter.tl(); 59 painter.mfd(200); 60 painter.tl(); 61 painter.mfd(200); 62 painter.setColor(Color.black); 63 painter.paint(dot4); 64 65 // top right (outer circle) 66 painter.tr(); 67 painter.tr(); 68 painter.mfd(400); 69 painter.setColor(Color.black); 70 painter.paint(dot4); 71 72 // top right (lower dot) 73 painter.tr(); 74 painter.mfd(70); 75 painter.setColor(Color.black); 76 painter.paint(dot3); 77 78 // top right (lower dot) 79 painter.tr(); 80 painter.mfd(400); 81 painter.setColor(Color.black); 82 painter.paint(dot3); 83 84 85 86 87 } 88 89 private void paintTheImage() { 90 91 SPainter painter = new SPainter("Dots",600,600); 92 93 SCircle dot = new SCircle(75); 94 SCircle dot2 = new SCircle(50); 95 SCircle dot3 = new SCircle(35); 96 SCircle dot4 = new SCircle(10); 97 98 SSquare square = new SSquare(200); 99 paintCircles(painter, dot, dot2, dot3, dot4); 100 } 101 102 // REQUIRED INFRASTRUCTURE 103 104 public Dots() { 105 paintTheImage(); 106 } 107 108 public static void main(String[] args) { 109 SwingUtilities.invokeLater(new Runnable() { 110 public void run() { 111 new Dots(); 112 } 113 }); 114 } 115 }