Programm, das den kleinsten abstand von einem Punkt zu anderen ermittelt.

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Oh, ich war wohl etwas schreibfaul ;-)

Der Codeschnipsel errechnet den Abstand zweier Punkte im kartesischen Koordinatensystem nach dem Satz des Pythagoras in der Programmiersprache Java. Die Ergebnisse könnten dann beispielsweise in ein Array gepackt werden, aus dem sodann der kleinste Wert errechnet wird - eine nicht allzu performante aber doch ganz nette Lösung wäre:

return Collections.min(Arrays.asList(arrayVonAbständen));

Math.sqrt(Math.pow(x2-x1, 2)+Math.pow(y2-y1, 2));

 

leomaringer 
Fragesteller
 14.05.2011, 19:47

Danke,

wenn sie mir noch sagen würden wieso das so ist, wuerde ich diese antwort als hilfsreichste auswählen ;-)

Danke!

leomaringer

0
Bizarrus  15.05.2011, 06:16
@leomaringer
Rechne x2 minus x1 aus dem Koordinatensystem,Rechne y2 minus y1 aus dem Koordinatensystem,Runde(?) oder Gebe(?) nur aus dem errechnetennur 2 stellen nach dem Komma aus und addiere Sie.Was Math.sqrt bedeutet, kann ich nicht sagen ^^Math.sqrt(Math.pow(x2-x1, 2)+Math.pow(y2-y1, 2));

 

0
leomaringer 
Fragesteller
 15.05.2011, 15:06
@Bizarrus

MAth.sqrt ist Wurzel ziehen

 

Math.pow ist potenzieren.

 

Danke für die Antwort, ich habe eher den Mathemathischen sinn dahinter gemeint.

lg leomaringer

0

1) Alle Koordinaten in zwei Arrays für die X- bzw. Y-Koordinate speichern

2) Eine Startkoordinate aussuchen

3) Mit einer while-Schleife die anderen Koordinaten abklappern, bis man den kleinsten Abstand gefunden hat.

Berechnet wird das mittels Pytagoras.

Das kann man in einer Routine prüfen, der man die Startkoordinate und die beiden Arrays übergibt.

Dafür muß man kein ganzes Programm schreiben! :-)