Cat.java
1    package Newthings;
2    
3    import painter.SPainter;
4    import shapes.*;
5    
6    import javax.swing.*;
7    import java.awt.*;
8    
9    public class Cat {
10       private void paintTheImage() {
11           SPainter midnight = new SPainter("Black Cat", 600, 600);
12           SPolygon shape = new SPolygon(5, 100);
13           SPolygon triangle = new SPolygon(3, 15);
14           SCircle circle = new SCircle (10);
15           SSquare blank = new SSquare(70);
16           SRectangle rec = new SRectangle(150, 198);
17           paintBodyBottom(midnight, rec);
18           paintBodyStart (midnight, triangle);
19           paintCatHead (midnight, shape);
20           paintCatEyes (midnight, circle);
21           paintCatFace(midnight, triangle);
22           paintCatEars(midnight,triangle);
23           paintClearSpotOne (midnight, blank);
24           paintCatLegs (midnight, rec);
25           paintCircleHelpers (midnight, circle);
26           paintTail (midnight, rec);
27           paintWhiskers (midnight, rec);
28           paintPupils (midnight, circle);
29           paintEarHole (midnight, triangle);
30   
31   
32   
33       }
34   
35       private void paintEarHole(SPainter midnight, SPolygon triangle) {
36           midnight.setColor(Color.lightGray);
37           triangle.setSide(30);
38           midnight.mfd(144);
39           midnight.mlt(50);
40           midnight.paint(triangle);
41           midnight.mrt(100);
42           midnight.paint(triangle);
43           midnight.mlt(50);
44           triangle.setSide(15);
45           midnight.mbk(144);
46       }
47   
48       private void paintPupils(SPainter midnight, SCircle circle) {
49           midnight.setColor(Color.BLACK);
50           circle.setRadius(6);
51           midnight.mfd(100);
52           midnight.mlt(50);
53           midnight.paint(circle);
54           midnight.mrt(100);
55           midnight.paint(circle);
56           midnight.mlt(50);
57           midnight.mbk(100);
58       }
59   
60       private void paintWhiskers(SPainter midnight, SRectangle rec) {
61           midnight.setColor(Color.WHITE);
62           midnight.mfd(70);
63           midnight.mlt(30);
64           rec.setHeight(1);
65           rec.setWidth(25);
66           midnight.paint(rec);
67           midnight.mrt(60);
68           midnight.paint(rec);
69           midnight.mbk(10);
70           midnight.mrt(5);
71           midnight.paint(rec);
72           midnight.mlt(70);
73           midnight.paint(rec);
74           midnight.mrt(35);
75           midnight.mbk(60);
76       }
77   
78       private void paintTail(SPainter midnight, SRectangle rec) {
79           midnight.setColor(Color.BLACK);
80           midnight.mrt(140);
81           midnight.mbk(100);
82           rec.setWidth(120);
83           rec.setHeight(20);
84           midnight.paint(rec);
85           midnight.mfd(100);
86           midnight.mlt(140);
87       }
88   
89       private void paintCircleHelpers(SPainter midnight, SCircle circle) {
90           midnight.setColor(Color.BLACK);
91           circle.setRadius(30);
92           midnight.mbk(80);
93           midnight.mlt(40);
94           midnight.paint(circle);
95           midnight.mrt(80);
96           midnight.paint(circle);
97           midnight.mlt(40);
98           midnight.mfd(80);
99       }
100  
101      private void paintClearSpotOne(SPainter midnight, SSquare blank) {
102          midnight.setColor(Color.white);
103          midnight.mfd(195);
104          midnight.paint(blank);
105          midnight.mbk(195);
106      }
107  
108      private void paintCatEars(SPainter midnight, SPolygon triangle) {
109          midnight.setColor(Color.black);
110          triangle.setSide(60);
111          midnight.mfd(144);
112          midnight.mlt(50);
113          midnight.paint(triangle);
114          midnight.mrt(100);
115          midnight.paint(triangle);
116          midnight.mlt(50);
117          triangle.setSide(15);
118          midnight.mbk(144);
119  
120      }
121  
122      private void paintCatFace(SPainter midnight, SPolygon triangle) {
123          midnight.setColor(Color.pink);
124          midnight.mfd(60);
125          midnight.paint(triangle);
126          midnight.mbk(60);
127          midnight.setColor(Color.BLUE);
128          triangle.setSide(25);
129          midnight.mfd(70);
130          midnight.paint(triangle);
131          midnight.mbk(70);
132          triangle.setSide(15);
133      }
134  
135      private void paintCatEyes(SPainter midnight, SCircle circle) {
136          midnight.setRandomGreenColor();
137          midnight.mfd(100);
138          midnight.mlt(50);
139          midnight.paint(circle);
140          midnight.mrt(100);
141          midnight.paint(circle);
142          midnight.mlt(50);
143          midnight.mbk(100);
144      }
145  
146      private void paintCatHead(SPainter midnight, SPolygon shape) {
147          midnight.setColor(Color.BLACK);
148          midnight.mfd(100);
149          midnight.paint(shape);
150          midnight.mbk(100);
151      }
152      private void paintBodyStart(SPainter midnight, SPolygon triangle) {
153          midnight.setColor(Color.BLACK);
154          triangle.setSide(200);
155          midnight.paint(triangle);
156          triangle.setSide(15);
157      }
158      private void paintBodyBottom(SPainter midnight, SRectangle rec) {
159          midnight.setColor(Color.BLACK);
160          midnight.mbk(130);
161          midnight.paint(rec);
162          midnight.mfd(130);
163      }
164      private void paintCatLegs(SPainter midnight, SRectangle rec) {
165          midnight.setColor(Color.GREEN);
166          rec.setWidth(40);
167          rec.setHeight(150);
168          midnight.mbk(140);
169          midnight.mlt(40);
170          midnight.draw(rec);
171          midnight.mrt(80);
172          midnight.draw(rec);
173          midnight.setColor(Color.BLACK);
174          rec.setWidth(38);
175          rec.setHeight(148);
176          midnight.paint(rec);
177          midnight.mlt(80);
178          midnight.paint(rec);
179          midnight.mrt(40);
180          midnight.mfd(140);
181      }
182  
183      public Cat() {
184          paintTheImage();
185      }
186  
187      public static void main(String[] args) {
188          SwingUtilities.invokeLater(new Runnable() {
189              public void run() {
190                  new Cat();
191              }
192  
193          });
194      }
195  }
196