Sine Wave
Sine Wave by Daniel Shiffman.
Render a simple sine wave.
int xspacing = 16; // How far apart should each horizontal location be spaced int w; // Width of entire wave float theta = 0.0; // Start angle at 0 float amplitude = 75.0; // Height of wave float period = 500.0; // How many pixels before the wave repeats float dx; // Value for incrementing X, a function of period and xspacing float[] yvalues; // Using an array to store height values for the wave void setup() { size(640, 360); w = width+16; dx = (TWO_PI / period) * xspacing; yvalues = new float[w/xspacing]; } void draw() { background(0); calcWave(); renderWave(); } void calcWave() { // Increment theta (try different values for 'angular velocity' here theta += 0.02; // For every x value, calculate a y value with sine function float x = theta; for (int i = 0; i < yvalues.length; i++) { yvalues[i] = sin(x)*amplitude; x+=dx; } } void renderWave() { noStroke(); fill(255); // A simple way to draw the wave with an ellipse at each location for (int x = 0; x < yvalues.length; x++) { ellipse(x*xspacing, height/2+yvalues[x], 16, 16); } }
Functions Used
draw()
Called directly after setup(), the draw() function continuously executes the lines of code contained inside its block until the program is stopped or noLoop() is called
Learn More
background()
The background() function sets the color used for the background of the Processing window
Learn More