xxxxxxxxxx
103
const updates = [
{
naam: "lars",
mijlpaal: "kickoff",
datum: new Date("2025-03-15")
},
{
naam: "raf",
mijlpaal: "greenlight",
datum: new Date("2025-03-10")
},
{
naam: "sander",
mijlpaal: "kickoff",
datum: new Date("2025-02-13")
},
{
naam: "sem",
mijlpaal: "final",
datum: new Date("2025-03-17")
},
{
naam: "maarten",
mijlpaal: "final",
datum: new Date("2023-08-15")
},
{
naam: "douwe",
mijlpaal: "final",
datum: new Date("2024-06-06")
},
{
naam: "david",
mijlpaal: "final",
datum: new Date("2023-11-15")
},
];
const mijlpalen = [
{naam:"kickoff",dag:10},
{naam:"midterm",dag:50},
{naam:"greenlight",dag:90},
{naam:"final",dag:110}
]
let gezichtjes = [];
let mijlplaatjes = [];
function preload() {
for(let update of updates){
// gezichtjes.push(loadImage(update.naam + '.png'));
}
for(let mijlpaal of mijlpalen){
// mijlplaatjes.push(loadImage(mijlpaal.naam + '.png'))
}
}
function setup() {
createCanvas(400, 400);
background(255)
for(let update of updates){
print(update.datum)
}
//draw track
let points = [];
for(let i=0;i<110;i++){
points.push({
x: cos(i/110*(1.8*PI)) * (0.8+0.4*noise(i*0.1)) * width/2.5 + width/2,
y: sin(i/110*(1.8*PI)) * (0.8+0.4*noise(i*0.1)) * width/2.5 + width/2
})
}
noFill()
stroke(0)
beginShape();
for(let i=0; i<points.length; i++){
const pt = points[i]
vertex(pt.x,pt.y)
}
endShape();
rectMode(CENTER)
for(let i=0;i<mijlpalen.length;i++){
const pt=points[mijlpalen[i].dag-1];
// image(mijlplaatjes[i], pt.x,pt.y)
rect(pt.x,pt.y,10,10)
}
for(let i=0;i<updates.length;i++){
const dag =
max(min(
round((Date.now() - updates[i].datum) / (1000 * 3600 * 24)) +
mijlpalen.find((mp) => mp.naam == updates[i].mijlpaal).dag - 1,
109),0);
const pt = points[dag];
// image(gezichtjes[i], pt.x, pt.y)
console.log(updates[i].datum, dag, pt)
circle(pt.x+random()*4-2, pt.y+random()*4-2, 10)
}
}