Processing, un for che unisce i punti creati da due array

Ciao ragazzi;
come da titolo vi chiedo cosa sto sbagliando in questo codice che utilizza due array che creano dei punti 2D (un'array che gestisce la posizione x e una che gestisce la posizione y)
I punti vengono creati quando un timer scocca per generarli (ogni secondo circa)
Questi punti vengono generati prendendo come input una variablie (az = Integer.parseInt(val[6]):wink:

Il problema nasce quando unisco i punti 2D che vengono generati.. vengono si uniti tutti con una linea ma tutti vengono anche uniti ad un primo punto fuori dal grafico...
Comunque se notate qualche problema nel codice potete dirmelo!

import processing.serial.*;

int pos_x_graph = 55;
int crono_graph_y = 0;
int index_graph = 0;
int az = 0;
int bz = 0;
int[]traccia_x;
int[]traccia_y;

void setup()
{

traccia_x = new int[300];
traccia_y = new int[300];
for(int aw = 0; aw <300; aw=aw+1)
{
traccia_x[aw] = 55;
traccia_y[aw] = 682;
}
}

void draw()
{
//************************************* CREAZIONE GRAFICO Y
fill(1, 1, 1);
crono_graph_y = crono_graph_y + 1;
if(crono_graph_y >= 250)
{
if(crono_graph_y == 300)
{

pos_x_graph = pos_x_graph + 7;
//int[][] traccia = new int[100][100];

az = Integer.parseInt(val[6]);

//---------------------------- Y POSITIVO
if(az == 0){
traccia_x [index_graph] = pos_x_graph; //X
traccia_y [index_graph] = 682; //Y
}
if(az == 1){
traccia_x [index_graph] = pos_x_graph; //X
traccia_y [index_graph] = 670; //Y
}
if(az == 2){
traccia_x [index_graph] = pos_x_graph; //X
traccia_y [index_graph] = 655; //Y
}
if(az == 3){
traccia_x [index_graph] = pos_x_graph; //X
traccia_y [index_graph] = 640; //Y
}
if(az == 4){
traccia_x [index_graph] = pos_x_graph; //X
traccia_y [index_graph] = 624; //Y
}
if(az >= 5){
traccia_x [index_graph] = pos_x_graph; //X
traccia_y [index_graph] = 609; //Y
}

//---------------------------- Y NEGATIVO
if(az == -1){
traccia_x [index_graph] = pos_x_graph; //X
traccia_y [index_graph] = 700; //Y
}
if(az == -2){
traccia_x [index_graph] = pos_x_graph; //X
traccia_y [index_graph] = 715; //Y
}
if(az == -3){
traccia_x [index_graph] = pos_x_graph; //X
traccia_y [index_graph] = 730; //Y
}
if(az == -4){
traccia_x [index_graph] = pos_x_graph; //X
traccia_y [index_graph] = 744; //Y
}
if(az <= -5){
traccia_x [index_graph] = pos_x_graph; //X
traccia_y [index_graph] = 760; //Y
}

crono_graph_y = 250;
index_graph = index_graph +1;
if(index_graph == 299)
{
index_graph = 0;
}

}//fine
}//fine if(crono_graph_y = 3)

//************************************* VISUALIZAZIONE GRAFICO Y
for (int a = 0; a <299; a=a+1) //a<=410
{
//il primo punto viene messo in alto!??
rect(traccia_x[a],traccia_y[a], 5, 5);
}

//************************************* UNIRE TUTTI I PUNTI GRAFICO Y
for (int a = 0; a <299; a=a+1) //a<=410
{
stroke(1);
bz = a+1;
line(traccia_x[bz],traccia_y[bz] , traccia_x[a],traccia_y[a]);
}

}

GRAZIE IN ANTICIPO A TUTTI!

Ciao! Siamo sul forum arduino :slight_smile: forse la tua domanda la dovresti porre su un forum che tratta processing.

torn24:
Ciao! Siamo sul forum arduino :slight_smile: forse la tua domanda la dovresti porre su un forum che tratta processing.

Ciao, molte volte in questo forum si parla di Processing.. forse non te ne sei accorto.
Comunque la stessa domanda potrei porla per Arduino se questo te la fa digerire meglio!

EDIT: Da questa immagine si capisce perfettamente la mia problematica.
Tutti i punti sono uniti tra di loro ma anche al primo punto!

  for (int a = 0; a <299; a=a+1)  //a<=410
   {
    stroke(1);
    bz = a+1;
    line(traccia_x[bz],traccia_y[bz] , traccia_x[a],traccia_y[a]);
   }

quando a vale 298 quindi l'ultimo punto
che coordinate ci sono in bz (che vale 299)?

Patrick_M:

  for (int a = 0; a <299; a=a+1)  //a<=410

{
    stroke(1);
    bz = a+1;
    line(traccia_x[bz],traccia_y[bz] , traccia_x[a],traccia_y[a]);
  }




quando a vale 298 quindi l'ultimo punto
che coordinate ci sono in bz (che vale 299)?

Ciao, allora bz è solo un undice che che e' un passo piu' avanti nelle celle dell'array!
siccome volevo unire l'ultimo punto creato con quello precedente, ho creato questo "stratagemma"..
Tutte le celle di entrambe le array sono state gia' settate a valore 0!

>aldoz: ... allora, tanto per cominciare correggi il tu primo post e racchiudi il codice nei tag CODE e NON QUOTE, dopo di che, spiegami esattamente cosa ha a che vedere con Arduino questo programa o, in conformità con il punto 16.11 del REGOLAMENTO , debbo chiudere il thread.

Guglielmo

prima che Guglielmo chiuda...

ho capito cosa fa il programma, intendevo sei sicuro dei valori che trovi in

traccia_x[299],traccia_y[299]

non è che per caso sono a 0... cioè l'origine?

Guglielmo il thread c'entra perche' e' su codice arduino che si interfaccia questo codice processing.
Ma non c'e' problema chiudi pure. Poi se ti da cosi' tanto fastidio il quote al posto del code ancora di piu' chiudi il post e mi scuso per tale gravoso errore..

Ah, utilizza quella lente di ricerca, qui sul forum Arduino e cerca la parolina "processing".
Dopodiche' buon lavoro nella chiusura di tutti quei post.

Intanto grazie Patrick! con poche parole mi hai risolto il problema :smiley:

aldoz:
Guglielmo il thread c'entra perche' e' su codice arduino che si interfaccia questo codice processing.

... se invece di fare polemica lo avessi spiegato subito avresti evitato il problema ...

aldoz:
se ti da cosi' tanto fastidio il quote al posto del code ancora di piu' chiudi il post e mi scuso per tale gravoso errore..

SI, mi da molto fastidio che tu NON rispetti il REGOLAMENTO (punto 7) ... quindi, invece di continuare con questo atteggiamento, cortesemente sistema il tuo primo post o ... mi costringerai ad adottare provvedimenti che non mi piace applicare. Grazie.

Guglielmo

aldoz:
Guglielmo il thread c'entra perche' e' su codice arduino che si interfaccia questo codice processing.
Ma non c'e' problema chiudi pure. Poi se ti da cosi' tanto fastidio il quote al posto del code ancora di piu' chiudi il post e mi scuso per tale gravoso errore..

Ah, utilizza quella lente di ricerca, qui sul forum Arduino e cerca la parolina "processing".
Dopodiche' buon lavoro nella chiusura di tutti quei post.

Intanto grazie Patrick! con poche parole mi hai risolto il problema :smiley:

Processind centra niente con Arduino. Le IDE sembrano simili ma uno si basa sul linguaggio C/C++ e l' altro su JAVA.

Perché insisti se sono 2 linguaggi diversi?

Poi é ininfluente da dove vengano i dati che vuoi elaborare con Processing.

Ciao Uwe