xxxxxxxxxx
61
let angle = 0;
let curve = [];
function setup(){
createCanvas(windowWidth,windowHeight);
}
function draw(){
background(0);
let diameter = 100;
noFill();
stroke(255);
translate(250,300);
let lx = 0;
let ly = 0;
for(let i=0; i<100; i++){
let prevX = lx;
let prevY = ly;
let n = i+1;
let radius = ((pow(-1,n+1))*(diameter/2))/n;
lx += radius*cos(n*angle);
ly += radius*sin(n*angle);
stroke(100,255,0,100);
noFill();
ellipse(prevX,prevY,radius*2);
//ellipse(lx,ly,10);
stroke(255);
line(prevX,prevY,lx,ly);
}
curve.unshift(ly);
translate(300,0);
line(lx-300,ly,0,curve[0]);
push();
stroke(255,0,0);
fill(255,0,0);
ellipse(0,curve[0],8);
pop();
beginShape();
stroke(0,0,255);
for(let i=0; i<curve.length; i++){
vertex(i,curve[i]);
}
endShape();
if (curve.length > 1000) {
curve.pop();
}
angle -= 0.08;
}