// Playing with Processing... // Pixel-based sine wave, object oriented; // Armin H. ix-2009 float sine_phase = PI; float periods = 4; // how many periods per window width (will be controlled by number keys) int incrementValue = 2; // declare SineWave object: SineWave sine; void setup () { //size(screen.width,screen.height); size(400,300); smooth(); // anti-aliasing frameRate(24); // set frame rate // initialize SineWave object: sine = new SineWave(sine_phase, periods); sine.init(); // initialize sine wave sine.display(); } void draw() { incrementValue = int (map(mouseX, 0,width, -10,10)); // mouse X position determines sine wave sine.increment(incrementValue); // increment the array by the value passed here sine.display(); // show the wave } // pressing keys 1 to 0 causes sine wave's period to change: void keyPressed() { switch(key) { case '1': periods = 1; println("1 periods/width"); break; case '2': periods = 2; println("2 periods/width"); break; case '3': periods = 3; println("3 periods/width"); break; case '4': periods = 4; println("4 periods/width"); break; case '5': periods = 5; println("5 periods/width"); break; case '6': periods = 6; println("6 periods/width"); break; case '7': periods = 7; println("7 periods/width"); break; case '8': periods = 8; println("8 periods/width"); break; case '9': periods = 9; println("5 periods/width"); break; case '0': periods = 10; println("10 periods/width"); break; } sine.init(); // initialize sine wave with new periods }