/** * Pulses * *

Elie Zananiri
* CART 253, Winter 2008

*/ // ---------------------------------------------------------------------- // GLOBAL CONSTANTS // ---------------------------------------------------------------------- int SCALE = 10; int MAX_PULSES = 500; // ---------------------------------------------------------------------- // GLOBAL VARIABLES // ---------------------------------------------------------------------- int numPulses = 0; int[] x = new int[MAX_PULSES]; // stores all the x-coordinates int[] y = new int[MAX_PULSES]; // stores all the y-coordinates float[] s = new float[MAX_PULSES]; // stores all the size values // ---------------------------------------------------------------------- // BUILT-IN FUNCTIONS // ---------------------------------------------------------------------- void setup() { size(400, 400); smooth(); noStroke(); } void draw() { background(0); // draw all the pulses for (int i=0; i < numPulses; i++) { drawPulse(i); } } void mousePressed() { addPulse(mouseX, mouseY); } void mouseDragged() { addPulse(mouseX, mouseY); } void keyPressed() { if (key == 32) { // space bar // clear all numPulses = 0; } } // ---------------------------------------------------------------------- // USER FUNCTIONS // ---------------------------------------------------------------------- /* draws a pulse and updates its size */ void drawPulse(int index) { fill(255); ellipse(x[index], y[index], sin(s[index])*SCALE, sin(s[index])*SCALE); s[index] += 0.1; } /* adds a new pulse to the list */ void addPulse(int newX, int newY) { if (numPulses < MAX_PULSES) { x[numPulses] = newX; y[numPulses] = newY; s[numPulses] = 0; numPulses++; } }