1 package npw; 2 3 import painter.SPainter; 4 import shapes.SSquare; 5 import shapes.SCircle; 6 7 import javax.swing.*; 8 import java.awt.*; 9 10 public class KanizsaSquare { 11 12 private void paintTheImage() { 13 SPainter painter = new SPainter("Kanizsa Square",400,400); 14 15 SSquare square = new SSquare(200); 16 SCircle dot = new SCircle(50); 17 18 drawBlackSquare(painter, square); 19 paintBlueCircles(painter, dot); 20 paintGreenCircles(painter, dot); 21 paintWhiteSquare(painter, square); 22 } 23 24 private void paintWhiteSquare(SPainter painter, SSquare square) { 25 painter.setColor(Color.white); 26 painter.moveToCenter(); 27 painter.paint(square); 28 } 29 30 31 private void paintGreenCircles(SPainter painter, SCircle dot) { 32 painter.setColor(Color.green); 33 painter.setHeading(45); 34 painter.mrt(145); 35 painter.paint(dot); 36 painter.mlt(290); 37 painter.paint(dot); 38 painter.faceNorth(); 39 } 40 41 42 private void paintBlueCircles(SPainter painter, SCircle dot) { 43 painter.setColor(Color.blue); 44 painter.setHeading(45); 45 painter.mfd(145); 46 painter.paint(dot); 47 painter.mbk(290); 48 painter.paint(dot); 49 painter.mfd(145); 50 painter.faceNorth(); 51 } 52 53 private void drawBlackSquare(SPainter painter, SSquare square) { 54 painter.setColor(Color.black); 55 painter.tl(45); 56 painter.draw(square); 57 } 58 59 60 61 public KanizsaSquare() { 62 paintTheImage(); 63 } 64 65 public static void main(String[] args) { 66 SwingUtilities.invokeLater(new Runnable() { 67 public void run() { 68 new KanizsaSquare(); 69 } 70 }); 71 } 72 }