Programm, das den kleinsten abstand von einem Punkt zu anderen ermittelt.
Hallo zusammen,
ich bin grade am Programmieren und komme nicht weiter:
ich habe ein viruelles koordinatrensystem. darauf sind ca. 15 Punkte. das programm soll jetz den punkt mit der kürzesten entfernung zu einem, den man vorher ausgewählt hat ausgeben.
zum beispiel gibt man dann nacheinander die koordinaten ein, die erste ist der punkt, von dem aus "gemessen" werden soll, die anderen gibt man danach ein.
Wichtig ist mir aber eigentlich nur der hauptteil mit dem vergleichen. Von der Syntax her verstehe ich es in folgenden Programmiersprachen:
Java, C++, Objective C 2.0, ruby (und ähnliches)
Vilen dank!
(und wenn ihr die antwort nicht ganz genau wisst, bitte nicht beantworten)
3 Antworten
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));
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));
MAth.sqrt ist Wurzel ziehen
Math.pow ist potenzieren.
Danke für die Antwort, ich habe eher den Mathemathischen sinn dahinter gemeint.
lg leomaringer
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! :-)
Danke,
wenn sie mir noch sagen würden wieso das so ist, wuerde ich diese antwort als hilfsreichste auswählen ;-)
Danke!
leomaringer