/** * Wave Gradient * by Ira Greenberg. * * Generate a gradient along a sin() wave. */ float angle = 0; float px = 0, py = 0; float amplitude = 30; float frequency = 0; float fillGap = 2.5; color c; int colorRange = 255; int ncycles = 500; void setup() { size(640, 360); background(200); noLoop(); } void draw() { for (int i =- ncycles; i < height+ncycles; i++){ // Reset angle to 0, so waves stack properly angle = 0; // Increasing frequency causes more gaps frequency+=.01; for (float j = 0; j < width+ncycles; j++){ py = i + sin(radians(angle)) * amplitude; angle += frequency; c = color(abs(py-i)*colorRange/amplitude, colorRange-abs(py-i)*colorRange/amplitude, j*((colorRange * 1.0)/(width+(int)(ncycles * 0.66)))); // Hack to fill gaps. Raise value of fillGap if you increase frequency for (int filler = 0; filler < fillGap; filler++){ set(int(j-filler), int(py)-filler, c); set(int(j), int(py), c); set(int(j+filler), int(py)+filler, c); } } } }