Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2013-03-28 11:52:25 [débutant] Problème forme

Gaki
nouveau membre
Date d'inscription: 2013-03-28
Messages: 3

[débutant] Problème forme



Bonjour,

Je débute actuellement sur Processing (Je m'excuse d'avance des inexactitudes que je risque de faire). Malgré l'aide de plusieurs tuto, je n'arrive pas à finir un sketch (qui me parait pourtant simple...). Je me tourne alors vers vous.


J'ai un fichier texte regroupant à l'intérieur des valeurs sur 3 colonnes: la 1ère est le numéro de la colonne ; La 2ème colonnes des valeurs représente le x et la 3ème représentant le y.

Je souhaite, tout simplement, qu'à chaque valeur (x et y) faire apparaître une petite croix (ça parait simple pourtant, non ?) ; Et faire en sorte que ces points soient reliés, c'est à dire que le point 1 est relié avec le 2, qui est relié avec le 3 (donc le 2 est relié avec le point 1 et 3), etc...

Actuellement, je n'ai qu'un point (au lieu d'une croix), je ne sais pas comment procéder.
Pareil pour les traits je n'arrive pas à "dire" x et y de la ligne actuelle (pour le 1er point) et x et y de la ligne suivante (du fichier texte).

String[] lines;
int index = 0;

void setup() {
  
  size(480, 360);
  background(255);
  stroke(0);
  frameRate(300);
  
  lines = loadStrings("fichier.txt");

}

void draw() {
  
  if (index < lines.length) {
    
    String[] pieces = split(lines[index], '\t');
    
    //println(lines[index]);
    
      int t = int(pieces[1]);
      float x = int(pieces[2]);
      float y = int(pieces[3]);
      point(x, y);
      println (t + "\t" + x + "\t" + y);
    
    index = index + 1;
  }

Merci d'avance, en espérant avoir étais clair.

Dernière modification par Gaki (2013-03-28 13:47:39)

Hors ligne

 

#2 2013-03-28 12:53:23 Re : [débutant] Problème forme

gundorf
membre
Date d'inscription: 2012-04-12
Messages: 36

Re: [débutant] Problème forme



tu peux nous mettre un extrait du fichier texte pour voir comment sont formatées les valeurs ?

Hors ligne

 

#3 2013-03-28 13:17:35 Re : [débutant] Problème forme

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: [débutant] Problème forme



Bonjour,

Attention les tableaux commencent à l'indice 0 donc :

String[] lines;
int index = 0;

void setup() {

  size(480, 360);
  background(255);
  stroke(0);
  frameRate(300);

  lines = loadStrings("fichier.txt");
}

void draw() {

  if (index < lines.length) {

    String[] pieces = split(lines[index], '\t');

    //println(lines[index]);

    int t = int(pieces[0]);
    float x = int(pieces[1]);
    float y = int(pieces[2]);
    ellipse(x, y, 10, 10);
    println (t + "\t" + x + "\t" + y);

    index = index + 1;
  }
}

Remarque, dans le forum utilise les balises code pour insérer du code.

J'ai mis en pièce jointe le fichier texte utilisé. J'ai séparé les colonnes par des tabulations.
Il faut mettre le fichier dans le répertoire du sketch Processing.

Dernière modification par Mushussu (2013-03-28 13:23:06)

Hors ligne

 

#4 2013-03-28 13:47:02 Re : [débutant] Problème forme

Gaki
nouveau membre
Date d'inscription: 2013-03-28
Messages: 3

Re: [débutant] Problème forme



Je me suis mal exprimé.

J'ai bien la forme voulu mais au lieu d'avoir des croix, j'ai actuellement que des points (non relié).

Voici le un bout du fichier texte

	0	152.75	95	        0	
	1	149.25	95.8711	0	
	2	144.531	97.2422	0	
	3	138.062	99.707	0	
	4	130.449	104.543	0	
	5	121.973	110.559	0	
	6	113.145	117.336	0

Désolé pour la balise.

Hors ligne

 

#5 2013-03-28 14:27:24 Re : [débutant] Problème forme

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: [débutant] Problème forme



Ah !

En fait il faut te faire une fonction qui te dessineras une croix avec x et y en centre et deux ligne qui se croisent.
Pour relier les points, l'idéal est de faire un tableau de points que tu rempliras avec les valeurs du fichier lu.
Ensuite tu parcourras le tableau et tu relieras le point courant avec le point suivant.

String[] lines;
int index = 0;
PVector[] points;

void setup() {
  size(480, 360);
  background(255);
  stroke(0);
  frameRate(300);

  lines = loadStrings("fichier.txt");
  println("lignes : " + lines.length);
  points = new PVector[lines.length];
  noLoop();
}

void draw() {

  for (int index = 0; index < lines.length; index++) {
    String[] pieces = split(lines[index], '\t');
    //println(lines[index]);

    int t = int(pieces[0]);
    int x = int(pieces[1]);
    int y = int(pieces[2]);
    points[index] = new PVector(x, y);
    croix(points[index]);
    println (t + "\t" + x + "\t" + y);
  }
  for (int i = 0; i < points.length - 1; i++) {
    line(points[i].x, points[i].y, points[i + 1].x, points[i + 1].y);
  }
}

void croix(PVector centre) {
  line(centre.x - 10, centre.y - 10, centre.x + 10, centre.y + 10);
  line(centre.x + 10, centre.y - 10, centre.x - 10, centre.y + 10);
}

Attention à la dernière ligne du fichier, il ne faut pas qu'elle soit vide.

Hors ligne

 

#6 2013-03-28 22:08:10 Re : [débutant] Problème forme

Gaki
nouveau membre
Date d'inscription: 2013-03-28
Messages: 3

Re: [débutant] Problème forme



Merci beaucoup Mushussu pour cette 1ère partie.

Je m'excuse pour mon ignorance mais quand tu dis qu'il ne faut pas que la dernière ligne soit vide, peux-tu m'éclairer sur ce qu'il faudrait mettre ?

Je pense avoir, plus ou moins, saisi le reste.

Merci.

Hors ligne

 

#7 2013-03-29 03:24:52 Re : [débutant] Problème forme

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: [débutant] Problème forme



Je disais, qu'il fallait qu'elle ne soit pas vide, mais c'était une erreur de ma part. Ne tiens pas compte de ma dernière remarque.
Je suis désolé si cela t'a plongé dans des abîmes de perplexité.

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024