Einzelnen Beitrag anzeigen

Diengo

Registriert seit: 3. Nov 2010
6 Beiträge
 
#1

Positionen (x ,y Achse, float) nach Distanz sortieren

  Alt 23. Dez 2010, 17:54
Hallo,

folgendes Vorhaben: Ich möchte etwa 1000~ Positionen welche sich in einem simplen Array vom Typ TPositions ->
Delphi-Quellcode:
TPositions = packed record
  x, y: single;
end;
befinden nach Distanz sortieren. Meine Überlegung war nun jede Position in dem Array zu durchlaufen und mittels abs die Distanz zu ermitteln. Meine simple Funktion hierzu:
Delphi-Quellcode:
function GetDistance(x1, y1, x2, y2: single): double;
begin
  result := abs(x2 - x1) + abs(y2 - y1);
end;
Wie sortiere ich die Positionen nun möglichst schnell im Array nach der Distanz? Einstiegspunkt soll dabei immer die Distanz zum ersten Eintrag im Array sein. Mir fällt da nur ein die Liste mehrmals zu durchlaufen um von jeder Position die Distanz zu ermitteln und dann irgendwie zu ordnen.

Geht das nicht irgendwie bequemer?

Gruß
  Mit Zitat antworten Zitat