# publicjdf/processing.py

### Subversion checkout URL

You can clone with HTTPS or Subversion.

Fetching contributors…

Cannot retrieve contributors at this time

file 60 lines (50 sloc) 1.735 kb
 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 `""" Additive Wave by Daniel Shiffman. (Rewritten in Python by Jonathan Feinberg.) Create a more complex wave by adding two waves together. """xspacing = 8 # How far apart should each horizontal location be spacedmaxwaves = 4 # total # of waves to add togetheramplitude = [] # Height of wavedx = [] # Value for incrementing X, to be calculated as a function of period and xspacingyvalues = [] # Using an array to store height values for the wave (not entirely necessary)def setup():    size(200, 200)    frameRate(30)    colorMode(RGB, 255, 255, 255, 100)    smooth()    for i in range(maxwaves):        amplitude.append(random(10, 30))        period = random(100, 300) # How many pixels before the wave repeats        dx.append((TWO_PI / period) * xspacing)    for i in range((width + 16) / xspacing):      yvalues.append(0.0)def theta():  # Try different multipliers for 'angular velocity' here  return frameCount * 0.02def draw():    background(0)    calcWave()    renderWave()def calcWave():    # Set all height values to zero    for i in range(len(yvalues)):        yvalues[i] = 0    # Accumulate wave height values    for j in range(maxwaves):        x = theta()        for i in range(len(yvalues)):            # Every other wave is cosine instead of sine            if (j % 2 == 0):              yvalues[i] += sin(x) * amplitude[j]            else:              yvalues[i] += cos(x) * amplitude[j]            x += dx[j]def renderWave():    # A simple way to draw the wave with an ellipse at each location    noStroke()    fill(255, 50)    ellipseMode(CENTER)    for x in range(len(yvalues)):        ellipse(x * xspacing, width / 2 + yvalues[x], 16, 16)`
Something went wrong with that request. Please try again.