/* * program to paint a kanizsa square */ package npw; import java.awt.Color; import javax.swing.SwingUtilities; import painter.SPainter; import shapes.SCircle; import shapes.SSquare; public class KanizsaSquare { // THE SOLUTION TO THE BLUE DOT PROBLEM private void paintTheImage() { SPainter guy = new SPainter("Kanizsa Square",400,400); SCircle dot = new SCircle(75); paintBlueCircle(guy, dot); paintRedCircle(guy, dot); paintGreenCircles(guy, dot); SSquare square = new SSquare(200); paintWhiteSquare(guy, square); } private void paintWhiteSquare(SPainter guy, SSquare square) { guy.setColor(Color.white); guy.paint(square); } private void paintGreenCircles(SPainter guy, SCircle dot) { //top right green circle guy.mbk(100); guy.mlt(100); guy.setColor(Color.green); guy.paint(dot); guy.moveToCenter(); //bottom left green circle guy.mfd(100); guy.mrt(100); guy.paint(dot); guy.moveToCenter(); } private void paintRedCircle(SPainter guy, SCircle dot) { guy.mfd(100); guy.mlt(100); guy.setColor(Color.RED); guy.paint(dot); guy.moveToCenter(); } private void paintBlueCircle(SPainter guy, SCircle dot) { guy.mbk(100); guy.mrt(100); guy.setColor(Color.blue); guy.paint(dot); guy.moveToCenter(); } //REQUIRED INFASTRUCTURE public KanizsaSquare() { paintTheImage(); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new KanizsaSquare(); } });} }