Animation.java
1    package ProjectHarriet;
2    //This makes an animation.
3    //WARNING MAY INDUCE SEIZURE LOTS OF FLASHING COLORS...
4    //LOOOOOOOKKKK AAAATTT WAAAAARRNNNING!
5    import shapes.SCircle;
6    import java.awt.Color;
7    import javax.swing.SwingUtilities;
8    import painter.SPainter;
9    import shapes.SSquare;
10   
11   import java.util.ArrayList;
12   import java.util.Random;
13   
14   public class Animation {
15       private void paintTheImage() {
16           ArrayList<SCircle> one = new ArrayList<>();
17           ArrayList<SSquare> two = new ArrayList<>();
18           ArrayList<SSquare> three = new ArrayList<>();
19           SPainter dodo = new SPainter("dodo", 600, 600);
20           SSquare background = new SSquare(600);
21           three.add(new SSquare(20*4));
22           three.add(new SSquare(30*4));
23           three.add(new SSquare(40*4));
24           three.add(new SSquare(50*4));
25           three.add(new SSquare(60*4));
26           three.add(new SSquare(70*4));
27           three.add(new SSquare(80*4));
28           three.add(new SSquare(90*4));
29           three.add(new SSquare(100*4));
30           three.add(new SSquare(110*4));
31           three.add(new SSquare(120*4));
32           three.add(new SSquare(130*4));
33           three.add(new SSquare(140*4));
34           three.add(new SSquare(150*4));
35           three.add(new SSquare(160*4));
36           three.add(new SSquare(170*4));
37           three.add(new SSquare(180*4));
38           three.add(new SSquare(190*4));
39           three.add(new SSquare(200*4));
40           three.add(new SSquare(210*4));
41           three.add(new SSquare(220*4));
42           three.add(new SSquare(230*4));
43           three.add(new SSquare(240*4));
44           three.add(new SSquare(250*4));
45           three.add(new SSquare(260*4));
46           three.add(new SSquare(270*4));
47           three.add(new SSquare(280*4));
48           three.add(new SSquare(290*4));
49           three.add(new SSquare(300*4));
50           three.add(new SSquare(300*4));
51           three.add(new SSquare(300*4));
52           three.add(new SSquare(300*4));
53           three.add(new SSquare(300*4));
54           three.add(new SSquare(300*4));
55           three.add(new SSquare(300*4));
56           three.add(new SSquare(300*4));
57           three.add(new SSquare(300*4));
58           three.add(new SSquare(300*4));
59           three.add(new SSquare(300*4));
60           three.add(new SSquare(300*4));
61           three.add(new SSquare(300*4));
62           three.add(new SSquare(300*4));
63           three.add(new SSquare(300*4));
64           three.add(new SSquare(300*4));
65           three.add(new SSquare(300*4));
66           three.add(new SSquare(300*4));
67           three.add(new SSquare(300*4));
68           three.add(new SSquare(300*4));
69           three.add(new SSquare(300*4));
70           three.add(new SSquare(300*4));
71           three.add(new SSquare(300*4));
72           three.add(new SSquare(300*4));
73           three.add(new SSquare(300*4));
74           three.add(new SSquare(300*4));
75           three.add(new SSquare(300*4));
76           three.add(new SSquare(300*4));
77           three.add(new SSquare(300*4));
78           three.add(new SSquare(300*4));
79           three.add(new SSquare(300*4));
80           three.add(new SSquare(300*4));
81           three.add(new SSquare(300*4));
82           three.add(new SSquare(300*4));
83           three.add(new SSquare(300*4));
84           three.add(new SSquare(300*4));
85           three.add(new SSquare(300*4));
86           three.add(new SSquare(300*4));
87           three.add(new SSquare(300*4));
88           three.add(new SSquare(300*4));
89           three.add(new SSquare(300*4));
90           three.add(new SSquare(300*4));
91           three.add(new SSquare(300*4));
92           three.add(new SSquare(300*4));
93           three.add(new SSquare(300*4));
94           three.add(new SSquare(300*4));
95           three.add(new SSquare(300*4));
96           three.add(new SSquare(300*4));
97           three.add(new SSquare(300*4));
98           three.add(new SSquare(300*4));
99           three.add(new SSquare(300*4));
100          three.add(new SSquare(300*4));
101          three.add(new SSquare(300*4));
102          three.add(new SSquare(300*4));
103          three.add(new SSquare(300*4));
104          three.add(new SSquare(300*4));
105          three.add(new SSquare(300*4));
106          three.add(new SSquare(300*4));
107          three.add(new SSquare(300*4));
108          three.add(new SSquare(300*4));
109          //more colorful
110          one.add(new SCircle(20));
111          one.add(new SCircle(30));
112          one.add(new SCircle(40));
113          one.add(new SCircle(50));
114          one.add(new SCircle(60));
115          one.add(new SCircle(70));
116          one.add(new SCircle(80));
117          one.add(new SCircle(90));
118          one.add(new SCircle(100));
119          one.add(new SCircle(110));
120          one.add(new SCircle(120));
121          one.add(new SCircle(130));
122          one.add(new SCircle(140));
123          one.add(new SCircle(150));
124          one.add(new SCircle(160));
125          one.add(new SCircle(170));
126          one.add(new SCircle(180));
127          one.add(new SCircle(190));
128          one.add(new SCircle(200));
129          one.add(new SCircle(210));
130          one.add(new SCircle(220));
131          one.add(new SCircle(230));
132          one.add(new SCircle(240));
133          one.add(new SCircle(250));
134          one.add(new SCircle(260));
135          one.add(new SCircle(270));
136          one.add(new SCircle(280));
137          one.add(new SCircle(290));
138          one.add(new SCircle(300));
139          one.add(new SCircle(310));
140          one.add(new SCircle(320));
141          one.add(new SCircle(330));
142          one.add(new SCircle(340));
143          one.add(new SCircle(350));
144          one.add(new SCircle(360));
145          one.add(new SCircle(370));
146          one.add(new SCircle(380));
147          one.add(new SCircle(390));
148          one.add(new SCircle(400));
149          one.add(new SCircle(410));
150          one.add(new SCircle(420));
151          one.add(new SCircle(430));
152          one.add(new SCircle(440));
153          one.add(new SCircle(450));
154          one.add(new SCircle(460));
155          one.add(new SCircle(470));
156          one.add(new SCircle(480));
157          one.add(new SCircle(480));
158          one.add(new SCircle(480));
159          one.add(new SCircle(480));
160          one.add(new SCircle(480));
161          one.add(new SCircle(480));
162          one.add(new SCircle(480));
163          one.add(new SCircle(480));
164          one.add(new SCircle(480));
165          one.add(new SCircle(480));
166          one.add(new SCircle(480));
167          one.add(new SCircle(480));
168          one.add(new SCircle(480));
169          one.add(new SCircle(480));
170          one.add(new SCircle(480));
171          one.add(new SCircle(480));
172          one.add(new SCircle(480));
173          one.add(new SCircle(480));
174          one.add(new SCircle(480));
175          one.add(new SCircle(480));
176          one.add(new SCircle(480));
177          one.add(new SCircle(480));
178          one.add(new SCircle(400));
179          one.add(new SCircle(390));
180          one.add(new SCircle(380));
181          one.add(new SCircle(370));
182          one.add(new SCircle(370));
183          one.add(new SCircle(380));
184          one.add(new SCircle(390));
185          one.add(new SCircle(400));
186          one.add(new SCircle(400));
187          one.add(new SCircle(390));
188          one.add(new SCircle(380));
189          one.add(new SCircle(370));
190          one.add(new SCircle(370));
191          one.add(new SCircle(380));
192          one.add(new SCircle(390));
193          one.add(new SCircle(400));
194          one.add(new SCircle(400));
195          one.add(new SCircle(380));
196          one.add(new SCircle(360));
197          one.add(new SCircle(340));
198          //change
199          two.add(new SSquare(10));
200          two.add(new SSquare(20));
201          two.add(new SSquare(30));
202          two.add(new SSquare(40));
203          two.add(new SSquare(50));
204          two.add(new SSquare(60));
205          two.add(new SSquare(70));
206          two.add(new SSquare(80));
207          two.add(new SSquare(90));
208          two.add(new SSquare(100));
209          two.add(new SSquare(110));
210          two.add(new SSquare(120));
211          two.add(new SSquare(130));
212          two.add(new SSquare(140));
213          two.add(new SSquare(150));
214          two.add(new SSquare(160));
215          two.add(new SSquare(170));
216          two.add(new SSquare(180));
217          two.add(new SSquare(170));
218          two.add(new SSquare(160));
219          two.add(new SSquare(150));
220          two.add(new SSquare(140));
221          two.add(new SSquare(130));
222          two.add(new SSquare(120));
223          two.add(new SSquare(110));
224          two.add(new SSquare(100));
225          two.add(new SSquare(90));
226          two.add(new SSquare(80));
227          two.add(new SSquare(60));
228          two.add(new SSquare(50));
229          two.add(new SSquare(40));
230          two.add(new SSquare(30));
231          two.add(new SSquare(20));
232          two.add(new SSquare(10));
233          two.add(new SSquare(10));
234          two.add(new SSquare(20));
235          two.add(new SSquare(30));
236          two.add(new SSquare(40));
237          two.add(new SSquare(50));
238          two.add(new SSquare(60));
239          two.add(new SSquare(70));
240          two.add(new SSquare(80));
241          two.add(new SSquare(90));
242          two.add(new SSquare(100));
243          two.add(new SSquare(110));
244          two.add(new SSquare(120));
245          two.add(new SSquare(130));
246          two.add(new SSquare(140));
247          two.add(new SSquare(150));
248          two.add(new SSquare(160));
249          two.add(new SSquare(170));
250          two.add(new SSquare(180));
251          two.add(new SSquare(170));
252          two.add(new SSquare(160));
253          two.add(new SSquare(150));
254          two.add(new SSquare(140));
255          two.add(new SSquare(130));
256          two.add(new SSquare(120));
257          two.add(new SSquare(110));
258          two.add(new SSquare(100));
259          two.add(new SSquare(90));
260          two.add(new SSquare(80));
261          two.add(new SSquare(60));
262          two.add(new SSquare(50));
263          two.add(new SSquare(40));
264          two.add(new SSquare(30));
265          two.add(new SSquare(20));
266          two.add(new SSquare(10));
267          two.add(new SSquare(10));
268          two.add(new SSquare(10));
269          two.add(new SSquare(20));
270          two.add(new SSquare(30));
271          two.add(new SSquare(40));
272          two.add(new SSquare(50));
273          two.add(new SSquare(60));
274          two.add(new SSquare(70));
275          two.add(new SSquare(80));
276          two.add(new SSquare(90));
277          two.add(new SSquare(100));
278          two.add(new SSquare(110));
279          two.add(new SSquare(120));
280          two.add(new SSquare(130));
281          two.add(new SSquare(140));
282          two.add(new SSquare(150));
283          two.add(new SSquare(160));
284          two.add(new SSquare(170));
285          two.add(new SSquare(180));
286          two.add(new SSquare(170));
287          two.add(new SSquare(160));
288          attemptOne(one,two,three,dodo,background);
289  
290      }
291  
292      private void attemptOne(ArrayList<SCircle> one, ArrayList<SSquare> two,ArrayList<SSquare> three, SPainter dodo, SSquare background) {
293          dodo.setColor(Color.black);
294          dodo.paint(background);
295          dodo.setColor(Color.red);
296          int i = 0;
297          int x = 0;
298          while (i < two.size()-1) {
299              dodo.paint(three.get(x));
300              dodo.paint(three.get(x));
301              dodo.paint(three.get(x));
302              dodo.setColor(randomColor());
303              dodo.paint(one.get(i));
304              dodo.paint(one.get(i));
305              dodo.paint(one.get(i));
306              dodo.setColor(randomColor());
307              dodo.paint(two.get(i));
308              dodo.paint(two.get(i));
309              dodo.paint(two.get(i));
310              dodo.pause(100);
311              dodo.setColor(darkColor());
312              i = i + 1;
313              x = x + 1;
314             
315          }
316          SCircle nota = new SCircle(400);
317          SSquare bob = new SSquare(250);
318          dodo.setBrushWidth(20);
319          dodo.setColor(darkColor());
320          dodo.draw(nota);
321          dodo.pause(90);
322          nota.setRadius(350);
323          dodo.setColor(randomColor());
324          dodo.draw(nota);
325          dodo.pause(90);
326          nota.setRadius(300);
327          dodo.setColor(darkColor());
328          dodo.draw(nota);
329          dodo.pause(90);
330          nota.setRadius(250);
331          dodo.setColor(randomColor());
332          dodo.draw(nota);
333          dodo.pause(90);
334          dodo.setBrushWidth(15);
335          nota.setRadius(200);
336          dodo.setColor(darkColor());
337          dodo.draw(nota);
338          dodo.pause(90);
339          dodo.setColor(randomColor());
340          dodo.draw(bob);
341          dodo.pause(90);
342          dodo.setColor(randomColor());
343          bob.resetSide(220);
344          dodo.draw(bob);
345          dodo.pause(90);
346          dodo.setColor(darkColor());
347          bob.resetSide(180);
348          dodo.draw(bob);
349          dodo.pause(90);
350          dodo.setColor(darkColor());
351          bob.resetSide(140);
352          dodo.draw(bob);
353          dodo.pause(90);
354          dodo.setColor(darkColor());
355          bob.resetSide(100);
356          dodo.draw(bob);
357          dodo.pause(90);
358          dodo.setColor(darkColor());
359          bob.resetSide(60);
360          dodo.draw(bob);
361      }
362  
363      private Color darkColor() {
364          int min = 0;
365          int max = 4;
366          double num = randomNumber(min, max);
367          if (num < 1) {
368              int r = 0;
369              int g = 139;
370              int b = 0;
371              return new Color(r,b,g);
372          } else if (num < 2) {
373              int r = 0;
374              int g = 150;
375              int b = 100;
376              return new Color(r,b,g);
377          } else {
378              int r = 100;
379              int g = 0;
380              int b = 0;
381              return new Color(r,b,g);
382          }
383      }
384  
385      private double randomNumber(int min, int max) {
386          return Math.random() * (max - min) + min;
387      }
388  
389      private Color randomColor() {
390          Random randomGenerator = new Random();
391          int r = randomGenerator.nextInt(256);
392          int g = randomGenerator.nextInt(256);
393          int b = randomGenerator.nextInt(256);
394          return new Color(r,b,g);
395      }
396  
397      public Animation() {
398          paintTheImage();
399      }
400  
401      public static void main(String[] args) {
402          SwingUtilities.invokeLater(new Runnable() {
403              public void run() {
404                  new Animation();
405              }
406  
407          } );
408      }
409  
410  }
411