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