1 /* 2 *Program to paint a kanizsa square in the context of the Nonrepresentational 3 * Painting World, NPW. 4 */ 5 package npw; 6 7 import java.awt.Color; 8 import javax.swing.SwingUtilities; 9 import painter.SPainter; 10 import shapes.SCircle; 11 import shapes.SSquare; 12 13 public class KanizsaSquare{ 14 //THE SOLUTION TO THE KANIZSA SQUARE PROBLEM 15 private void paintTheImage() { 16 SPainter painter = new SPainter("Kanizsa Square",400,400); 17 SCircle dot = new SCircle(75); 18 paintBlueCircle(painter, dot); 19 paintRedCircle(painter, dot); 20 paintGreenCircles(painter, dot); 21 SSquare square = new SSquare(200); 22 paintWhiteSquare(painter, square); 23 } 24 25 private void paintWhiteSquare(SPainter painter, SSquare square) { 26 painter.setColor(Color.WHITE); 27 painter.paint(square); 28 } 29 30 private void paintGreenCircles(SPainter painter, SCircle dot) { 31 painter.setColor(Color.GREEN); 32 painter.mfd(100); 33 painter.mrt(100); 34 painter.paint(dot); 35 painter.moveToCenter(); 36 painter.mbk(100); 37 painter.mlt(100); 38 painter.paint(dot); 39 painter.moveToCenter(); 40 } 41 42 private void paintRedCircle(SPainter painter, SCircle dot) { 43 painter.setColor(Color.RED); 44 painter.mbk(100); 45 painter.mrt(100); 46 painter.paint(dot); 47 painter.moveToCenter(); 48 } 49 50 private void paintBlueCircle(SPainter painter, SCircle dot) { 51 painter.setColor(Color.BLUE); 52 painter.mfd(100); 53 painter.mlt(100); 54 painter.paint(dot); 55 painter.moveToCenter(); 56 } 57 58 //REQUIRED INFRASTRUCTURE 59 60 public KanizsaSquare() { 61 paintTheImage(); 62 } 63 64 public static void main(String[] args) { 65 SwingUtilities.invokeLater(new Runnable() { 66 public void run() { 67 new KanizsaSquare(); 68 } 69 }); 70 } 71 } 72 73