In this assignment, I wanted to see the power of sine waves in creating smooth and soothing effects. Therefore, I have built up my assignment on something we had experimented in class.
There are two waves in this sketch. One wave has a longer period of 2π, and another has a shorter period of π/2. I wanted to experiment a different approach on how the waves could be shown like they’re moving. Therefore, I added an offset variable that increments by 0.8 on every frame. In the draw function this offset is used to translate the positions.
Now, when the y position of the vertex (or ellipse in this sketch) gets updated, it feels like the waves are moving.
Then I tried adding traces of the waves using alpha value in the background() function:
background('rgba(13, 39, 54, 0.025)')
This would keep adding faded layers of dark greenish background so it appears like the waves are leaving traces.
Here’s the code used to build the sketch:
let offset = 0; function setup() { createCanvas(600, 600); background(0); } function yVal(x, period, phase, amplitude) { return sin((TWO_PI * x) / period + phase) * amplitude; } function draw() { background("rgba(13, 39, 54, 0.025)"); translate(width / 2 - offset, height / 2); offset += 0.8; for (let i = -width / 2 + offset; i <= width / 2 + offset; i += 10) { let x = map(i, -width / 2, width / 2, -PI, PI); stroke(0, 255, 255, 0.1); strokeWeight(10); ellipse(i, -yVal(x, TWO_PI, 0, height / 6), 4); strokeWeight(1); ellipse(i, yVal(x, PI / 2, 0, height / 3), 3); } }
Future Considerations
I would love to add more waves and lines to show a few parts of the waves connected to each other. Also, I would like to create more complex wave patterns by introducing reversed sine waves with varying periods, and amplitudes.