KanizsaSquare.java
1    /* 
2     * Program for drawing a square and 
3     * painting circles and another square 
4     * in the form of a kanizsa square. 
5     */
6    package npw;
7    
8    import java.awt.Color;
9    import painter.SPainter;
10   import shapes.SCircle;
11   import shapes.SSquare;
12   
13   public class KanizsaSquare {
14       public static void main(String[] args) {
15           SPainter painter = new SPainter("Kanizsa Square", 400, 400);
16   
17           SSquare square = new SSquare(200);
18           SCircle dot = new SCircle(50);
19   
20           drawBlackSquare(painter,square);
21           paintBlueCircles(painter,dot);
22           paintGreenCircles(painter,dot);
23           paintWhiteSquare(painter,square);
24       }
25       public static void drawBlackSquare(SPainter painter, SSquare square) {
26           painter.setColor(Color.BLACK);
27           painter.tr(45);
28           painter.draw(square);
29           painter.tl(45); //Tilt back to neutral position
30       }
31       public static void paintBlueCircles(SPainter painter, SCircle dot) {
32           painter.setColor(Color.BLUE);
33           painter.mlt(100);
34           painter.mfd(100);
35           painter.paint(dot);
36           painter.moveToCenter();
37   
38           painter.mrt(100);
39           painter.mbk(100);
40           painter.paint(dot);
41           painter.moveToCenter();
42       }
43       public static void paintGreenCircles(SPainter painter, SCircle dot) {
44           painter.setColor(Color.GREEN);
45           painter.mlt(100);
46           painter.mbk(100);
47           painter.paint(dot);
48           painter.moveToCenter();
49   
50           painter.mrt(100);
51           painter.mfd(100);
52           painter.paint(dot);
53           painter.moveToCenter();
54       }
55   
56       public static void paintWhiteSquare(SPainter painter, SSquare square){
57           painter.setColor(Color.WHITE);
58           painter.paint(square);
59           painter.moveToCenter();
60       }
61   }
62