/* *program to paint a KanizsaSquare in the context of the non representational painting world, npw * */ package npw; import java.awt.Color; import java.awt.geom.Point2D; import javax.swing.SwingUtilities; import painter.SPainter; import shapes.SCircle; import shapes.SSquare; public class KanizsaSquare { //solution to Kanizsa problem private void paintTheImage(){ SPainter painter = new SPainter("Kanizsa Square",400,400); SCircle dot = new SCircle(75); paintBlueCircle(painter, dot); paintRedCircle(painter, dot); paintGreenCircles(painter, dot); SSquare square = new SSquare(200); paintWhiteSquare(painter, square); } private void paintWhiteSquare(SPainter painter, SSquare square) { painter.moveToCenter(); painter.setColor(Color.WHITE); painter.paint(square); } private void paintGreenCircles(SPainter painter, SCircle dot) { Point2D.Double coords = new Point2D.Double(); coords.setLocation(300,100); painter.setColor(Color.GREEN); //System.out.println(painter.center()); painter.moveTo(coords); painter.paint(dot); coords.setLocation(100, 300); painter.moveTo(coords); painter.paint(dot); } private void paintRedCircle(SPainter painter, SCircle dot) { Point2D.Double coords = new Point2D.Double(); coords.setLocation(300,300); //System.out.println(painter.center()); painter.moveTo(coords); painter.setColor(Color.RED); painter.paint(dot); } private void paintBlueCircle(SPainter painter, SCircle dot) { //establish a 2d point variable, and set it to the coords for the upper left corner Point2D.Double coords = new Point2D.Double(); coords.setLocation(100,100); //System.out.println(painter.center()); painter.moveTo(coords); painter.setColor(Color.BLUE); painter.paint(dot); } //required infrastructure public KanizsaSquare(){ paintTheImage(); } public static void main(String[] args){ SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new KanizsaSquare(); } }); } }