1 package npw; 2 3 import painter.SPainter; 4 import shapes.SCircle; 5 import shapes.SSquare; 6 import javax.swing.SwingUtilities; 7 import java.awt.*; 8 9 public class Dots { 10 // THE SOLUTION TO THE BLUE DOT PROBLEM 11 12 public void paintCircles(SPainter painter, SCircle dot, SCircle dot2, SCircle dot3, SCircle dot4) 13 { 14 // center dot 15 painter.moveToCenter(); 16 painter.setColor(Color.blue); 17 painter.paint(dot); 18 19 20 // bottom right 21 22 painter.tr(); 23 painter.mfd(100); 24 painter.tr(); 25 painter.mfd(100); 26 painter.setColor(Color.red); 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.green); 38 painter.paint(dot3); 39 40 // bottom left circle 41 42 painter.mfd(370); 43 painter.setColor(Color.green); 44 painter.paint(dot3); 45 46 // turn right (upwards) 47 painter.tr(); 48 painter.mfd(75); 49 painter.tr(); 50 painter.mfd(75); 51 painter.setColor(Color.red); 52 painter.paint(dot2); 53 54 // return to center (invariance) 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 66 painter.tr(); 67 painter.tr(); 68 painter.mfd(400); 69 painter.setColor(Color.black); 70 painter.paint(dot4); 71 72 // top right 73 painter.tr(); 74 painter.mfd(70); 75 painter.setColor(Color.black); 76 painter.paint(dot3); 77 78 // top right 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 }