Hallo ich habe folgendes Problem:
_0 1 2 3 4 5 6
0*
1...*
2......*
3........*
4...........*
5...........*
6...........*
Ich habe einen Vektor nennen wir ihn mal weg in dem lauter Punkte in Form von Tupeln stehen. Die Methode Tupel stellt die Funktion getX und getY zur Verfügung. So nun hat der Vektor z.b. wie ich in dem Bild versucht habe zu zeigen einen diagonalen Weg der aus den Punkten (0,0), (1,1), (2,2), (3,3), (4,4) besteht. Um diese Strecke zu fahren würde aber der Punkt (0,0) und der Punkt(4,4) reichen. Ich will also überflüßige Punkte aus dem Vektor streichen.
So meine Idee war nun:
ich nehme den ersten Punkt und schaue ob die X und die Y Koordinate des nächsten Punktes beide eins größer geworden sind und wenn ja schau ich den nächsten an. Ist dies beim nächstren wieder der Fall kann ich den mittleren löschen.
etwa so:
Ok nun meine Frage. Wie kann ich das am besten realisieren? Wie könnte ich z.B. den ersten Punkt speichern um ihn dann mit den nächsten zu vergleichen.
Schon mal im voraus vielen Dank!
_0 1 2 3 4 5 6
0*
1...*
2......*
3........*
4...........*
5...........*
6...........*
Ich habe einen Vektor nennen wir ihn mal weg in dem lauter Punkte in Form von Tupeln stehen. Die Methode Tupel stellt die Funktion getX und getY zur Verfügung. So nun hat der Vektor z.b. wie ich in dem Bild versucht habe zu zeigen einen diagonalen Weg der aus den Punkten (0,0), (1,1), (2,2), (3,3), (4,4) besteht. Um diese Strecke zu fahren würde aber der Punkt (0,0) und der Punkt(4,4) reichen. Ich will also überflüßige Punkte aus dem Vektor streichen.
So meine Idee war nun:
ich nehme den ersten Punkt und schaue ob die X und die Y Koordinate des nächsten Punktes beide eins größer geworden sind und wenn ja schau ich den nächsten an. Ist dies beim nächstren wieder der Fall kann ich den mittleren löschen.
etwa so:
Code:
if(weg.elementAt(0).getX()+1==weg.elementAt(1).getX() && weg.elementAt(0).getY()+1==weg.elementAt(1).getY())
wenn ja gehe zum nächsten
if(weg.elementAt(0).getX()+1==weg.elementAt(2).getX() && weg.elementAt(0).getY()+1==weg.elementAt(2).getY())
wenn ja lösche Tupel(1,1)
uns so weiter..
Ok nun meine Frage. Wie kann ich das am besten realisieren? Wie könnte ich z.B. den ersten Punkt speichern um ihn dann mit den nächsten zu vergleichen.
Schon mal im voraus vielen Dank!