/* built with Studio Sketchpad:
* https://sketchpad.cc
*
* observe the evolution of this sketch:
* https://studio.sketchpad.cc/sp/pad/view/ro.nSpf-3hwP8Q/rev.8
*
* authors:
* GoToLoop
* license (unless otherwise specified):
* creative commons attribution-share alike 3.0 license.
* https://creativecommons.org/licenses/by-sa/3.0/
*/
// forum.processing.org/two/discussion/307/catmull-rom-casteljau-and-kawano-curves-
// www.loftmatic.com/_pages/Research/HiroshiKawano/W14_01_01/W14_01_01.html
// studio.processingtogether.com/sp/pad/export/ro.9W$jcepauodqW/latest
//////////////////////////////////////////////////////////////////////////////////////
// 2D Animation and Interaction Course by Andrew Glassner.
//
// Week 13.
//
// Assignment: create an interactive animation with multiple objects moving over time.
//
// I can use random numbers to create objects. Use arrays to hold our random numbers
// from next frame to the next. Use the transformation functions rotate, translate,
// scale, pushmatrix and popmatrix to draw the objects.
//
// The idea is to make Hiroshi Kawano’s painting very nervous.
// Use the + and - keys to make the result worse or normal.
//
// October 3, 2013, Version W13_01_06
// © 2013 Loftmatic, Henk Lamers.
// Declare the color constants.
final static color RED = #FF2618, ORA = #E8901A, BLU = #292A84, WHI = #E0D8C8, BLA = #141214;
// Size of the squares.
final static byte DIM = 20;
// One array for the fill colors.
color[] fillColor = {
RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, BLA, WHI, // Row 1
RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, BLA, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, BLA, WHI, // Row 2.
RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, BLA, BLA, BLA, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, BLA, WHI, // Row 3.
RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, BLA, BLA, BLA, BLA, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, BLA, WHI, // Row 4.
BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, WHI, WHI, WHI, WHI, WHI, WHI, WHI, BLA, WHI, // Row 5.
BLA, BLA, BLU, RED, RED, ORA, RED, WHI, ORA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, BLA, BLA, BLA, BLA, BLA, BLA, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, // Row 6.
BLA, BLA, BLU, ORA, BLU, RED, RED, BLU, RED, BLA, BLA, BLA, BLA, BLA, BLA, BLA, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, BLA, BLA, BLA, BLA, BLA, BLA, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, // Row 7.
BLA, BLA, BLU, WHI, WHI, RED, RED, ORA, RED, WHI, BLU, BLA, BLA, BLA, BLA, BLA, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, BLA, BLA, BLA, BLA, BLA, BLA, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, // Row 8.
WHI, WHI, BLU, BLU, ORA, BLA, BLA, RED, RED, RED, WHI, WHI, BLA, BLA, BLA, BLA, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, BLA, BLA, BLA, BLA, BLA, BLA, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, // Row 9.
WHI, WHI, WHI, BLA, BLU, BLA, BLA, BLA, BLA, BLA, BLA, BLU, BLA, BLA, BLA, BLA, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, BLA, BLA, BLA, BLA, BLA, BLA, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, // Row 10.
WHI, WHI, WHI, WHI, RED, WHI, BLA, BLA, BLA, BLA, BLA, RED, ORA, WHI, BLU, BLA, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, BLA, BLA, BLA, BLA, BLA, BLA, BLA, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, // Row 11.
WHI, WHI, WHI, WHI, RED, RED, ORA, BLU, BLA, BLA, BLA, BLA, BLA, WHI, RED, BLA, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, BLA, ORA, ORA, BLA, BLA, BLA, BLA, BLA, BLA, WHI, WHI, WHI, WHI, WHI, WHI, // Row 12.
WHI, WHI, WHI, WHI, RED, RED, BLA, BLU, BLA, BLA, BLA, BLA, BLA, WHI, RED, RED, RED, BLA, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, BLA, ORA, ORA, ORA, BLA, BLA, BLA, BLA, BLA, WHI, WHI, WHI, WHI, WHI, WHI, // Row 13.
WHI, WHI, WHI, WHI, RED, RED, WHI, BLA, BLA, BLA, BLA, BLA, BLA, RED, RED, RED, RED, ORA, RED, RED, BLU, RED, ORA, BLA, WHI, WHI, BLA, ORA, ORA, ORA, ORA, BLA, BLA, BLA, BLA, WHI, WHI, WHI, WHI, WHI, WHI, // Row 14.
WHI, WHI, WHI, WHI, RED, RED, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, RED, RED, RED, WHI, ORA, BLU, WHI, WHI, WHI, BLA, ORA, ORA, ORA, ORA, BLA, BLA, BLA, BLA, BLA, WHI, WHI, WHI, WHI, WHI, // Row 15.
WHI, WHI, WHI, WHI, RED, RED, RED, BLU, BLU, BLA, BLU, BLU, BLA, ORA, ORA, BLU, BLU, RED, BLU, BLA, BLA, ORA, WHI, WHI, WHI, WHI, BLA, BLA, BLA, ORA, ORA, BLA, BLA, BLA, WHI, BLA, WHI, WHI, WHI, WHI, WHI, // Row 16.
WHI, WHI, BLA, WHI, BLA, BLU, RED, WHI, BLA, RED, BLA, BLU, BLA, ORA, WHI, BLA, BLA, ORA, WHI, BLA, BLA, RED, BLU, BLA, WHI, WHI, BLA, BLA, WHI, RED, WHI, BLA, BLA, BLA, WHI, BLA, WHI, WHI, WHI, BLA, WHI, // Row 17.
WHI, WHI, WHI, WHI, WHI, WHI, ORA, BLU, BLA, BLA, RED, BLA, ORA, RED, BLA, BLA, BLA, WHI, WHI, BLA, BLA, ORA, BLU, BLU, BLA, BLA, WHI, BLA, WHI, WHI, WHI, BLA, WHI, BLA, WHI, BLA, WHI, WHI, WHI, BLA, WHI, // Row 18.
WHI, WHI, WHI, WHI, WHI, WHI, RED, BLU, BLU, BLA, RED, WHI, RED, RED, ORA, BLU, BLU, BLA, BLA, BLA, BLA, WHI, BLA, BLU, BLU, BLU, BLU, BLA, BLA, BLA, WHI, BLA, BLA, RED, WHI, BLA, WHI, WHI, WHI, BLA, WHI, // Row 19.
WHI, WHI, WHI, WHI, WHI, WHI, WHI, BLA, BLA, BLU, RED, RED, WHI, WHI, ORA, BLU, BLU, BLU, BLU, BLU, BLU, BLA, BLA, BLU, BLU, BLU, BLA, BLA, BLA, BLA, BLA, BLA, BLA, RED, BLU, BLA, WHI, WHI, WHI, BLA, WHI, // Row 20.
WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, BLA, BLU, WHI, BLU, BLA, BLA, ORA, BLU, BLU, BLU, BLU, BLU, BLU, BLU, BLU, BLU, BLU, BLU, BLU, BLA, RED, RED, RED, BLA, BLA, RED, RED, BLA, WHI, WHI, WHI, BLA, WHI, // Row 21.
WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, BLA, BLA, BLA, RED, RED, RED, ORA, BLA, BLA, BLA, BLA, BLU, BLU, BLU, BLU, BLU, BLU, BLU, BLA, RED, RED, RED, BLA, BLA, RED, RED, BLA, WHI, WHI, WHI, BLA, WHI, // Row 22.
WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, RED, RED, BLA, WHI, BLA, BLA, BLA, BLA, BLA, BLU, BLU, BLU, BLU, BLU, BLU, BLA, RED, RED, RED, BLA, BLA, RED, RED, BLA, WHI, WHI, WHI, BLA, WHI, // Row 23.
WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLU, BLU, BLU, BLU, BLA, RED, RED, BLA, BLA, RED, RED, RED, BLA, WHI, WHI, BLA, WHI, // Row 24.
WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLU, BLU, BLU, BLA, RED, RED, RED, BLA, RED, RED, RED, RED, RED, BLU, BLA, WHI, // Row 25.
WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLU, BLU, BLU, BLA, RED, RED, RED, RED, RED, RED, RED, BLA, ORA, BLA, BLA, WHI, // Row 26.
WHI, WHI, BLA, WHI, BLA, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, RED, RED, RED, RED, RED, RED, RED, BLA, RED, BLU, RED, BLU, // Row 27.
WHI, WHI, WHI, WHI, BLA, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, BLA, RED, RED, RED, RED, RED, RED, RED, RED, RED, BLU, ORA, RED, RED, ORA, // Row 28.
BLA, BLA, WHI, WHI, BLA, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, BLA, BLA, BLA, BLA, RED, RED, RED, RED, RED, RED, BLA, BLU, RED, RED, RED, RED, RED, RED, RED, RED, RED, ORA, BLU, WHI, ORA, // Row 29.
BLA, BLA, BLA, BLA, BLA, BLA, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, BLA, WHI, BLA, BLA, RED, RED, RED, RED, RED, RED, RED, BLA, BLU, BLU, RED, RED, RED, RED, RED, RED, RED, WHI, BLA, BLU, RED, // Row 30.
RED, RED, RED, RED, RED, RED, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, BLA, BLA, RED, RED, RED, RED, RED, RED, RED, RED, RED, BLA, BLA, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, ORA, RED, // Row 31.
BLA, BLA, BLA, RED, RED, RED, BLA, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, BLA, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, BLA, WHI, ORA, BLA, ORA, BLU, WHI, BLA, BLU, ORA, ORA, RED, BLA, RED, // Row 32.
RED, RED, RED, RED, RED, RED, RED, RED, WHI, WHI, WHI, WHI, WHI, WHI, WHI, WHI, BLA, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, BLA, WHI, BLU, BLA, BLA, BLU, RED, BLA, WHI, ORA, BLA, RED, RED, RED, // Row 33.
RED, RED, RED, RED, RED, RED, RED, RED, RED, BLU, BLU, BLU, WHI, WHI, WHI, WHI, BLA, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, BLA, WHI, RED, RED, BLA, BLU, BLA, BLA, WHI, BLU, WHI, BLA, RED, RED, // Row 34.
RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, ORA, ORA, WHI, WHI, WHI, WHI, BLA, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, BLA, WHI, ORA, BLU, WHI, BLU, BLA, BLA, WHI, RED, RED, RED, RED, RED, // Row 35.
RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, ORA, BLA, WHI, WHI, WHI, WHI, BLA, BLA, BLA, RED, RED, RED, RED, RED, RED, RED, RED, BLA, WHI, WHI, BLU, BLA, BLA, BLU, ORA, RED, RED, RED, RED, RED, RED, // Row 36.
RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, BLA, WHI, WHI, WHI, WHI, BLA, BLA, WHI, WHI, BLU, ORA, WHI, BLU, ORA, RED, RED, BLA, WHI, ORA, RED, BLA, ORA, WHI, ORA, RED, RED, RED, RED, RED, RED, // Row 37.
RED, RED, RED, RED, RED, RED, RED, BLA, BLA, BLA, BLA, BLA, WHI, WHI, WHI, WHI, BLA, RED, BLA, BLA, WHI, BLA, BLA, ORA, BLA, RED, RED, BLA, WHI, BLA, BLU, BLU, RED, ORA, WHI, BLU, WHI, BLA, RED, RED, RED, // Row 38.
RED, RED, RED, RED, RED, RED, BLA, WHI, BLU, BLA, WHI, RED, WHI, WHI, WHI, WHI, WHI, BLA, BLA, WHI, WHI, BLA, RED, BLU, BLU, WHI, WHI, BLA, WHI, RED, BLA, WHI, WHI, RED, BLU, WHI, WHI, BLA, RED, RED, RED, // Row 39.
RED, RED, RED, RED, RED, RED, RED, RED, BLU, BLU, BLA, BLA, WHI, WHI, WHI, WHI, WHI, WHI, BLA, WHI, WHI, BLA, RED, RED, RED, BLA, WHI, BLA, WHI, BLA, BLU, BLA, WHI, BLU, ORA, BLU, WHI, WHI, BLA, RED, RED // Row 40.
};
// One array for each axis. The -40 square is placed outside the screen
// otherwise the squares will all behave the same at the same moment.
short[] squareX = {
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 1.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 2.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 3.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 4.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 5.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 6.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 7.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 8.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 9.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 10.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 11.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 12.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 13.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 14.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 15.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 16.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 17.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 18.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 19.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 20.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 21.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 22.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 23.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 24.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 25.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 26.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 27.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 28.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 29.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 30.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 31.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 32.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 33.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 34.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 35.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 36.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 37.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 38.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, // X row 39.
-40, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780 // X row 40.
};
short[] squareY = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // Y row 1.
0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, // Y row 2.
0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, // Y row 3.
0, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, // Y row 4.
0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, // Y row 5.
0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, // Y row 6.
0, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, // Y row 7.
0, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, // Y row 8.
0, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, // Y row 9.
0, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, // Y row 10.
0, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, // Y row 11.
0, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, // Y row 12.
0, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, // Y row 13.
0, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, // Y row 14.
0, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, // Y row 15.
0, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, // Y row 16.
0, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, // Y row 17.
0, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, // Y row 18.
0, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, // Y row 19.
0, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, // Y row 20.
0, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, // Y row 21.
0, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, // Y row 22.
0, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, // Y row 23.
0, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, // Y row 24.
0, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, // Y row 25.
0, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, // Y row 26.
0, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, // Y row 27.
0, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, // Y row 28.
0, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, // Y row 29.
0, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, // Y row 30.
0, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, // Y row 31.
0, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, // Y row 32.
0, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, // Y row 33.
0, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, // Y row 34.
0, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, // Y row 35.
0, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, // Y row 36.
0, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, // Y row 37.
0, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, // Y row 38.
0, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, // Y row 39.
0, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780 // Y row 40.
};
void setup() {
size(800, 800);
frameRate(5);
noSmooth();
noFill();
strokeWeight(DIM);
}
void draw() {
background(0);
int i = -1;
while (++i != fillColor.length) {
final float x = squareX[i], y = squareY[i];
final float rnd = random(-100, 100);
stroke(fillColor[i]);
bezier(x, y, x, y, x, y, x - rnd, y - rnd);
}
}