/**
* 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++;
}
}