Variable Anzahl von Punkten zur Linie verbinden


#1
Hallo,

die Überschrift hört sich vielleicht im ersten Moment wie eine Anfängerfrage an, aber die Implementation ist für mich gar nicht so einfach.
Also ich habe eine Liste aus einzelnen Punkten, die zur Laufzeit immer wieder neu erzeugt werden können.
Nun möchte ich diese einzelnen Punkte miteinander verbinden.
Das ganze grafische Ding ist ein 32x32 Kachelgitter deren Mittelpunkte die Punkte der Liste sind und genau diese möchte ich miteinander verbinden.

Ich habe es mit drawLine,drawPoliline und GeneralPath versucht, aber es kamen immer nur falsche Ergbnisse dabei heraus. Es gibt wahrscheinlich eine Formel oder einen Trick vermute ich, wie man das berechnen kann und genau diesen versuche ich herauszufinden.
Mir liegt viel daran nicht zu viel schreiben zu müssen und genau deshalb schreibe ich hier rein, denn mit richtig vielen if abfragen könnte ich das Problem lösen aber genau das möchte ich nicht.
 

sheel

I love Asm
#2
Hi

es geht um Swing?

Wie ist das Ergebnis falsch? Bei dem, was man zB. drawPolyLine übergeben kann, gibts nicht viel zum falschmachen. Einfach Koordinaten und die Anzahl der Punkte...
 
#4
Ich poste mal kurz den Code. Es funktioniert fast, denn es wird zwar das was ich möchte gezeichnet aber dann auch noch eine Linie vom Ursprung zu den einzelnen Punkten.

xpoints = new int[path.size()];
ypoints = new int[path.size()];

if(path!=null){
for(int i=0;i<path.size();i++){
xp = path.get(i).x*w + w/2;
yp = path.get(i).y*h + h/2;

xpoints = xp;
ypoints = yp;
g.drawPolyline(xpoints,ypoints,xpoints.length);
System.out.println(xpoints[0]);

}
}