var numpoints = 200;
function setup() {
createCanvas(400, 400);
frameRate(10);
noStroke();
}
function draw() {
background(14,0,54);
noFill();
for (i = 1; i < 4; i+=2) { //two left deltoids
strokeWeight(0.3);
stroke(201,255,175);
push();
translate(width/4,height*i/4);
deltoid();
pop();
}
for (i = 1; i < 4; i+=2) { //two right deltoids
strokeWeight(0.3);
stroke(201,255,175);
push();
translate(width*3/4,height*i/4);
deltoid();
pop();
}
var c = color(255,202,map(mouseX,0,width,150,225)); // color change for the cornoid
push();
strokeWeight(1);
stroke(c);
translate(width/2,height/2);
cornoid();
pop();
}
function cornoid() {
var x;
var y;
var a = map(mouseX,0,width,100,200); //a value changes according to mouseX, and mapping the value
beginShape();
for (var i = 0; i < numpoints; i++ ) {
var t = map(i, 0, numpoints, mouseY, 200); //theta changes according to the mouseY
x = a*cos(t)*(1-2*sin(t)*sin(t));
y = a*sin(t)*(1-2*cos(t)*cos(t));
rotate(mouseY); //rotating according to mouseY
vertex(x,y);
}
endShape();
}
function deltoid() {
var x;
var y;
var a = map(mouseY,0,height,10,60); //a value changes according to mouseY, and mapping the value
beginShape();
for (var i = 0; i < numpoints; i++ ) {
var t = map(i, 0, numpoints, 0, mouseX); //theta changes according to the mouseX
x = a/3*(2*cos(t)+cos(t*2));
y = a/3*(2*sin(t)-sin(t*2));
rotate(mouseY); //rotating according to mouseY
vertex(x,y);
}
endShape(CLOSE);
}
Project 7 Curves
sketch