xxxxxxxxxx
38
let points = [];
let t = 0;
const numPoints = 100;
let deltaT;
let oldPos;
function setup() {
deltaT = 1*(3-sqrt(5))/2;
createCanvas(1000, 1000);
let xold = random(0, width);
let yold = random(0, height);
for (let ni = 0; ni < numPoints; ni++) {
let xnew = random(0, width);
let ynew = random(0, height);
points.push(new Point(xold, yold));
xold = xnew;
yold = ynew;
}
background(220);
}
function draw() {
oldPos = (points[0].pos.copy()).mult(pow(1-t,numPoints-1));
for (let zi = 0; zi < 10; zi++) {
let pos = createVector(0, 0);
for (let ni = 0; ni < numPoints; ni++) {
let tmp = points[ni].pos.copy();
// points[ni].show();
tmp.mult(binomialCoefficient(numPoints - 1, ni) * pow(t, ni) * pow((1 - t), numPoints - 1 - ni));
pos.add(tmp);
}
stroke(0,10);
line(oldPos.x,oldPos.y,pos.x,pos.y);
t += deltaT;
t = t % 1.0;
oldPos = pos;
}
}