Voici le code en question j'essaye de faire en sorte que mon CSV soit responsable de l'elélevation merci d'avance
import processing.dxf.*;
import processing.opengl.*;
import toxi.geom.*;
import toxi.geom.mesh.*;
import toxi.processing.*;
boolean saveDXF = false;
int DIM=20;
int DIM2=20;
float NOISE_SCALE=0.15;
String [] CSV_File ;
String co,effort;
float pays;
ArrayList mesValeurs;
TriangleMesh mesh;
ToxiclibsSupport gfx;
void setup() {
size(800, 800, OPENGL);
Terrain terrain = new Terrain(DIM, DIM2,20);
// populate elevation data
mesValeurs = new ArrayList();
CSV_File =loadStrings("data/tableur_salvateur.csv");
for(int i=0; i<400; i++){
CSV_File = split(CSV_File[i], ';');
float v = float(CSV_File[1]);
//float v = random(100);
println(CSV_File[1]);
mesValeurs.add(v);
//float taille= map(v, 122, 3053,400, 800);
}
float[] el = new float[DIM*DIM2];
for(int z = 0, i=0; z<DIM; z++){
for(int x= 0; x<DIM2; x++){
float v = (float) mesValeurs.get(i);
el[i++] = v;
// for(int i=0; i< data.length; i++){
// println(fields[1]);
// for (int z = int(fields[1]),e = 0; z < DIM; z++) {
// for (int x= int(fields[2]); x < DIM; x++) {
// el[e++] = noise(x * NOISE_SCALE, z * NOISE_SCALE) * 100;
// el[e++] =
//}
//}
}
//float x= float(fields[0]);
//float y= float(fields[1]);
noiseSeed(2);
terrain.setElevation(el);
// create mesh
mesh = new TriangleMesh();
terrain.toMesh(mesh,-10);
// attach drawing utils
gfx = new ToxiclibsSupport(this);
}
}
void draw() {
{
if ( saveDXF == true ) {
beginRaw( DXF, "files/myCubes.dxf" );
}
background(0);
lights();
translate(width/2,height/2,0);
rotateX(mouseY*0.01);
rotateY(mouseX*0.01);
noStroke();
gfx.mesh(mesh);
}
if ( saveDXF == true ) {
endRaw();
saveDXF = false;
}
}
void keyPressed()
{
if ( key == 's' ) {
saveDXF = true;
}
}
Hors ligne
le CSV joint au projet
Hors ligne
Bonsoir,
Ton erreur était de remettre l'extraction d'une ligne dans la variable qui contient toutes le lignes.
for (int i = 0; i < CSV_File.length; i++) { String[] ligne = split(CSV_File[i], ';'); float v = float(ligne[1]); //float v = random(100); println(ligne[1]); mesValeurs.add(v); //float taille= map(v, 122, 3053,400, 800); }
De plus, quand tu parcours un fichier, il vaut mieux mettre la taille du tableau qui contient les lignes plutôt qu'un nombre.
Bon courage pour la suite. N'hésite pas à refaire un tour par icic si tu as des questions.
Hors ligne
Merci de votre réponse !
Hors ligne