As my first introductory piece, this one required several renditions and variations to achieve the look. At the beginning, I had planned to create a portfolio of optical illusion-esque works, but as can be seen, this did not turn out to be the case. Regardless, while the works do not have a matching theme, they definitely show my progress in learning JavaScript.
/* Luna Jerjees
Optical Illusions 1
*/
let increments;
//create canvas and set background color
function setup() {
createCanvas(600, 600);
background(0);
noFill();
increments = 30;
}
function draw() {
let colors = ['green', 'orange', 'violet'];
//array of color options
frameRate(10); //decrease framerate
let size = 20;
let incr = 5;
//create the increasing size of circles in the middle
for (let i = 0; i< 56; i++) {
stroke(random(colors));//randomly choose colors for each circle
ellipseMode(RADIUS);
ellipse(300,300,size);
ellipse(300,300, size += incr); //increase the size of the next circle
}
//draws vertical lines
strokeWeight(1);
line(4,0,4,600); //initial line
let newInc = 4; //increment factor
let coord = 4; //original position
let colors2 = ['blue', 'red', 'yellow'];
//array of colors
for (let i = 0; i < 150; i++){
stroke(random(colors2));
line(coord += newInc,0, coord += newInc ,600);
//create new lines incremented along the x axis
}
}