xxxxxxxxxx
166
let numero_cerchi = 10;
let x = [numero_cerchi];
let y = [numero_cerchi];
let target_x = [numero_cerchi];
let target_y = [numero_cerchi];
let raggio;
let trigger = [numero_cerchi] , trigger_pre = [numero_cerchi];
let lunghezza = [numero_cerchi];
let somma = [];
let lunghezza_relativa = [];
let soglia_trigger = 0.2;
function setup() {
createCanvas(400, 400);
raggio = width * 0.01;
frameRate(30);
for(let i = 0; i < numero_cerchi; i++) {
x[i] = 0;
y[i] = 0;
target_x[i] = floor(random(width));
target_y[i] = floor(random(height));
trigger[i] = 0;
trigger_pre[i] = 0;
}
for(let i = 0; i < numero_cerchi; i++) {
lunghezza_relativa[i] = 0;
somma[i] = 0;
for(let j = 0; j < numero_cerchi; j++) {
lunghezza_relativa[i][j] = 0;
somma[i][j] = 0;
}
}
} //fine setup()
function draw() {
background(100);
for (let i = 0; i < numero_cerchi; i++) {
if (i < (numero_cerchi - 1)) {
stroke(0);
fill(0);
ellipse(x[i], y[i], raggio, raggio);
stroke(0 + 255 * trigger[i]);
line(x[i], y[i], x[i + 1], y[i + 1]);
lunghezza[i] = calcola_lunghezza(x[i], x[i + 1], y[i], y[i + 1]);
}
else {
ellipse(x[i], y[i], raggio, raggio);
stroke(255 - 255 * trigger[i]);
line(x[i], y[i], x[0], y[0]);
lunghezza[i] = calcola_lunghezza(x[i], x[0], y[i], y[0]);
}
if (x[i] < target_x[i]) {
x[i]++;
}
if (x[i] > target_x[i]) {
x[i]--;
}
if (x[i] == target_x[i]) {
target_x[i] = floor(random(width));
}
if (y[i] < target_y[i]) {
y[i]++;
}
if (y[i] > target_y[i]) {
y[i]--;
}
if (y[i] == target_y[i]) {
target_y[i] = floor(random(height));
}
if (trigger[i] == 1 && trigger_pre[i] == 0) {
//attiva inviluppo sintesi sonora
}
if (trigger[i] == 0 && trigger_pre[i] == 1) {
//rilascio inviluppo sintesi sonora
}
} //fine for generazione grafica e sonora
//-------------calcolo triangolo----------------//
for (let i = 0; i < numero_cerchi; i++) {
for (let j = 0; j < numero_cerchi; j++) {
if (i != j) {
lunghezza_relativa[i][j] = calcola_lunghezza(x[i], x[j], y[i], y[j]);
}
}
}
for (let i = 0; i < numero_cerchi; i++) {
for (let j = 0; j < numero_cerchi; j++) {
if (j < (numero_cerchi - 1)) {
somma[i][j] = somma_lunghezze(lunghezza_relativa[i][j], lunghezza_relativa[i][j + 1]);
}
else {
somma[i][j] = somma_lunghezze(lunghezza_relativa[i][j], lunghezza_relativa[i][0]);
}
}
}
/* for (let i = 0; i < numero_cerchi; i++) {
if (i < (numero_cerchi - 1)) {
trigger[i] = calcola_triangolo (somma[i + 1], lunghezza[i]);
}
else {
trigger[i] = calcola_triangolo(somma[0], lunghezza[i]);
}
} */
//print(int((lunghezza[0])), int((lunghezza[1])),int((lunghezza[2])));
print(trigger[0], trigger[1], trigger[2]);
//-------------utility----------------//
for (let i = 0; i < numero_cerchi; i++) {
trigger_pre[i] = trigger[i];
}
} //fine draw()
function calcola_lunghezza(x1, x2, y1, y2) {
return sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
}
function somma_lunghezze(L1, L2) {
return (L1 + L2);
}
function calcola_triangolo (somma_L, L3) {
let trigga;
if (((somma_L) - L3) <= soglia_trigger) {
trigga = 1;
}
else {
trigga = 0;
}
return trigga;
}