2013-07-12 2 views
2

Mon fichier texte contient:Lire différente ligne du fichier texte à écrire dans drawLine (line1a, line1b, line2a, line2b)

1.232 3.456 
2.341 23.41 
.... 

Je veux utiliser ces coordonnées pour tracer une ligne qui continuent de coordonner précédente dans Android éclipse. Jusqu'ici mon code ci-dessous peut lire la première ligne (ligne1a & ligne1b) à écrire dans canvas.drawLine();

while ((line = buffreader.readLine()) != null) { 
    String[] parts = line.split(" "); 
    float line1a = Float.parseFloat(parts[0]); 
    float line1b = Float.parseFloat(parts[1]); 

    // TODO 
    canvas.drawLine(line1a, line1b ,line2a, line2b, paint); 
    canvas.drawLine(line2a, line2b ,line3a, line3b, paint); 
} 

Je ne sais pas comment appeler la ligne 2a, 2b, 3a, 3b, dans la même boucle pour créer ligne continue

Répondre

0
// Init point list. Here we use Float2 to represent a Point, use any 
// data structure you like. 
List<Float2> points = new ArrayList<Float2>(); 
// Create a point list from the file 
while ((line = reader.readLine()) != null) { 
    String[] parts = line.split(" "); 
    float x = Float.parseFloat(parts[0]); 
    float y = Float.parseFloat(parts[1]); 
    points.add(new Float2(x, y)); 
} 

// Connects these points use straight lines. 
for (int i = 0; i < points.size() - 1; i++) { 
    Float2 p1 = points.get(i); 
    Float2 p2 = points.get(i + 1); 
    canvas.drawLine(p1.x, p1.y, p2.x, p2.y, paint); 
} 
0

2 façons de le faire venir à l'esprit: 1. Soit faire une première while-loop lisant tous les points dans une structure de données ordonnée dynamiquement ordonnée (par exemple liste ou tableau dynamique ...) appelée lignes (contenant des points - paires de flottants). Ensuite, une deuxième boucle boucle sur cette structure de données et dessine des lignes du premier point au second, du deuxième au troisième, etc. 2. Dans la boucle while existante, stockez les points précédents dans une variable dont la portée est supérieure à la boucle while. Ensuite, vous pouvez les réutiliser. Il faut faire attention à la première itération où vous ne pouvez pas encore dessiner, mais gardez seulement le point. Si vous voulez connecter le dernier point au premier, la méthode 1 peut être préférable (2 peuvent être adaptés en enregistrant explicitement le premier point et en reliant le premier et le dernier après la fin de la boucle while).

Questions connexes