xxxxxxxxxx
75
let sier;
let points;
let rvorm;
let rfreqs;
let keuze;
// variabelen voor de pijlen loop
let parts; // de frequenties die er toe doen.
let lijn; // de vorm die door de wijzers wordt gevormd.
let angle;
let n; // het aantal keren dat er een punt aan de lijn is toegevoegd.
let factor = 50.0/5.0;//12.0; // experimenteel. Moet in scherm passen.
function preload() {
sier = loadJSON("sier.json");
}
function setup() {
createCanvas(800, 800);
// fullscreen();
maakvorm();
count = 0;
frameRate(5);
keuze = vorm;
initpijlen();
n = 0;
}
function draw() {
clear();
background(220);
stroke(0);
noFill();
// showvorm();
scale(1,-1);
translate(width/2,-height/2);
preparelijn();
push();
if (n>=2) {
push();
stroke(color(255,0,0));
beginShape();
for (let i=0;i<n+1;i++) {
vertex(lijn[i].x,lijn[i].y);
}
if (n>=rfreqs.length) endShape(CLOSE);
else endShape();
//endShape();
pop();
}
pop();
if (n>=rfreqs.length) {
noLoop();
}
n++;
}
function preparelijn() {
let curangle = n*angle;
if (curangle>2*PI) curangle -= 2*PI;
let s = parts[1];
let p1 = p5.Vector.fromAngle(curangle*s.freq+s.alpha).mult(s.len);
drawarrow(0,0,p1.mag(), p1.heading());
for (let i=2;i<parts.length;i++) {
s = parts[i];
drawarrow(p1.x,p1.y,s.len,curangle*s.freq+s.alpha);
p1 = p5.Vector.fromAngle(curangle*s.freq+s.alpha).mult(s.len).add(p1);
}
lijn[n] = p1.copy();
}