Stap 6: Vormgeving van de vrucht
idx = (idx+1)%(ptDensity);
berekenen van de huidige rij
for (int i = 0; ik < fft.avgSize(); i ++) {}
zweven theta (PI/fft.avgSize()) = * i-PI/2;
de huidige rij vertaalt geluid door het oppakken van het geluid spectrum en uit te rekken om te passen op een halve cirkel. de waarde van het spectrum tussenpoos //each dan vertaalt zich in een verandering van de omvang, straalt vanuit het midden van het gebied.
float toevoegen = (coords[idx][i].mag() + (0.05*(r+modFactor(i)*fft.getAvg(i)));
Coords[idx][i].setMag(add);
}
Deze dubbele for-lus trekt de halve cirkel en draait het om de vruchten, het creëren van een scanner die wordt toegevoegd aan de afstand vanaf elk punt naar het midden.
for (int j = 0; j < (ptDensity); j ++) {//loop draait halve cirkel rond de y-as met formulier sfeer
de beginShape() functie beslaat alle punten op het object en maakt van de werkelijke oppervlakte die het object maakt.
beginShape(QUAD_STRIP);
for (int i = 0; ik < fft.avgSize(); i ++) {//this lus trekt de halve cirkel
zweven theta (PI/fft.avgSize()) = * i-PI/2;
noStroke();
Stroke(map(FFT.getAvg(i), 0, fft.avgSize(), 0, 256), 50, 55);
Fill(map(FFT.getAvg(i), 0, fft.avgSize(), 0, 256), 50, 55);
hoekpunt (coords [j], [i] .x, coords [j], [i] .y, coords[j][i].z);
Als (j == ptDensity-1) {}
hoekpunt (coords [0], [i] .x, coords [0], [i] .y, coords[0][i].z);
}
else {}
hoekpunt (coords [j + 1] [i] .x, coords [j + 1] [i] .y, coords[j+1][i].z);
} //create quadstrip-compatibele geometrie
}
endShape(CLOSE);
}