xxxxxxxxxx
68
let gui; //https://github.com/L05/p5.touchgui
let r = 3;
let armoniche = [];
let angolo = [];
let slider_amp = [];
let amp_armonica = [];
function setup() {
createCanvas(windowWidth, windowHeight);
gui = createGui();
for (let i = 0; i < 10; i++) {
slider_amp[i] = createSliderV("amp", 50 + 50 * i , height * 0.5, 40, height * 0.45, 0.00, 1.00);
if (i > 0) {
slider_amp[i].val = 0;
}
else {
slider_amp[i].val = 1;
}
}
}
function draw() {
background(0);
drawGui();
for (let i = 0; i < 10; i++) {
amp_armonica[i] = slider_amp[i].val;
}
let total = floor(width / (r * 2 ));
noFill();
stroke(0, 188, 238);
strokeWeight(2);
beginShape();
for (let i = 0; i < total + 1; i++) {
angolo[i] = map(i, 0, total, 0, TWO_PI * 2);
armoniche[i] = sin(angolo[i]) * amp_armonica[0] +
sin(angolo[i] * 2) * amp_armonica[1] +
sin(angolo[i] * 3) * amp_armonica[2] +
sin(angolo[i] * 4) * amp_armonica[3] +
sin(angolo[i] * 5) * amp_armonica[4] +
sin(angolo[i] * 6) * amp_armonica[5] +
sin(angolo[i] * 7) * amp_armonica[6] +
sin(angolo[i] * 8) * amp_armonica[7] +
sin(angolo[i] * 9) * amp_armonica[8] +
sin(angolo[i] * 10) * amp_armonica[9] ;
let y = map(armoniche[i], -1.5, 1.5, height * 0.35, 50);
let x = map(i, 0, total + 1, 50, 600) ;
vertex(x, y);
}
endShape();
}