In this assignment, I wanted to do a generative text that moves. I did that by doing an array and watching a YouTube tutorial that taught me how to move the fonts, which was quite easy to do.
Then, I was thinking of adding an interactive element with the mouseClicked element but I wasn’t sure how to do that, as I kept getting errors as the font oscillates back to forth (using sin waves) by default.
With the help of Pi (thanks Pi) I was able to do that, where each time the mouse was clicked the fonts oscillated back and forth faster and faster.
So this is the code
let font; let points = []; let r = 4; let angle = 0; let angleIncrement = 1; // New variable to control the angle increment rate var landscape; function preload() { font = loadFont("fonts/Inconsolata_Condensed-Light.ttf"); landscape = loadImage('background.jpg'); } function setup() { createCanvas(510, 400); points = font.textToPoints("AFRA", 0, 300, 300, { sampleFactor: 0.1 // simplifyThreshold: 0 }); angleMode(DEGREES); } function draw() { background(landscape); for (let i = 0; i < points.length; i++) { ellipse(points[i].x + r * sin(angle + i * 20), points[i].y, 10, 10); } angle += angleIncrement; // Use the angleIncrement variable } function mouseClicked() { angleIncrement += 5; // Increase the angle increment rate on each click }
and this is the final product 🙂
Honestly, I’m proud of my work so far, with this being my 4th assignment with code, but in the future, I would love to work with Arabic letters and see what it would look like.
Reference to the video I watched: