/* built with Studio Sketchpad: * https://sketchpad.cc * * observe the evolution of this sketch: * https://studio.sketchpad.cc/sp/pad/view/ro.Qz-LUvmS5Ci/rev.3 * * authors: * GoToLoop * license (unless otherwise specified): * creative commons attribution-share alike 3.0 license. * https://creativecommons.org/licenses/by-sa/3.0/ */ /** * Graph Bars (v1.0) * GoToLoop (2015-Sep-13) * * forum.Processing.org/two/discussion/12490/ * is-it-possible-to-create-an-indexed-list-array-of-rgb-values-for-fill * * studio.ProcessingTogether.com/sp/pad/export/ro.9qxrHCEYG6Z9o */ import processing.serial.Serial; static final int QTY = 10, DIM = 60, FPS = 10; final color[] colors = new color[QTY]; final int[] heights = new int[QTY]; int idx; void setup() { size(600, 200, JAVA2D); smooth(4); noLoop(); frameRate(FPS); strokeWeight(1.5); stroke(0); rectMode(CORNER); keyPressed(); // Comment it out once you've got your PALETTE[]. //new Serial(this, "COM6", 19200); // Uncomment to activate it! } void draw() { background(0300); for (int i = 0; i != QTY; ++i) { fill(colors[i]); rect(i*DIM, height, DIM, -heights[i]); } } void serialEvent(Serial s) { heights[idx] = s.read(); if ((idx = (idx + 1) % QTY) == 0) redraw(); } void keyPressed() { for (int i = 0; i != QTY; ++i) { colors[i] = (color) random(#000000) | #000000; heights[i] = (int) random(height); } redraw(); } void mousePressed() { keyPressed(); }