sketch_curvesDownload
// Huijun Shen session D
// huijuns@andrew.cmu.edu
var nPoints = 100;
//var lineGroup = [];
function setup() {
createCanvas(400,400);
background(180);
frameRate(10);
}
function draw() {
background(150);
noStroke();
push();
translate(width/2,height/2);
rotate(mouseX/30); // make it rotate according to x position
Orthotomic();
pop();
}
function Orthotomic(){ //draw the shape
var x;
var y;
noFill();
fill(255-mouseY*0.3,mouseY*0.2,100); // make color related to y position
stroke(3);
beginShape(); // the shape
for (var i = 0; i < nPoints; i++) {
var t = map(i, 0, nPoints, 0, TWO_PI);
x = constrain(mouseX,0,400)/30*cos(t);
y = sin(t);
var x1 =20*(x*cos(2*t)-y*sin(2*t)+2*sin(t));
var y1 =20*(-x * sin(2*t) - y*cos(2*t) + 2*cos(t));
vertex(x1+random(5), y1+random(5)); //make the edge a bit random lines
}
endShape(CLOSE);
}