// Shariq M. Shah
// Section C
// shariqs@andrew.cmu.edu
// {Project - 03
var posC = 0;
var angle = 0;
var t = 'polar'
var midX = 320
var midY = 240
function setup() {
createCanvas(640, 480);
background(0);
}
function draw() {
//Rotating ellipses creating void in the center
push();
translate(320, 240);
rotate(radians(angle));
noFill()
stroke(250, mouseX, mouseY)
ellipse(0, 0, 100, posC + 250);
pop();
angle = angle + mouseY * 0.1
posC = posC + 0.5
//Text that changes color acccording to rest of the graphic
textSize(10);
rectMode(CENTER)
text('polar', midX - 10, midY);
fill(250, mouseX, mouseY);
//If mouse is moved to center, lines become black creating vortex
if ((mouseX > midX - 20 & mouseX < midX + 20) && (mouseY > midY - 20 & mouseY < midY + 20)) {
push();
translate(midX, midY);
rotate(radians(angle));
noFill()
stroke(0)
ellipse(0, 0, 100, posC + 250);
pop();
angle = angle - mouseY * 0.5
posC = posC + 0.5
}
}
In this project, I explored geometries and mathematical aggregation of an ellipse to create highly articulated and complex patterns. Using a limited amount of code, the program is able to use the user’s input to create a variety of vibrant mandala like patterns. The geometry is calibrated to leave a perfect circle in the center of the canvas, where the text changes color according to the the lines that are being drawn.