Hallo Frederic,
von der Distanzmatrix musst du nur das obere Dreieck speichern:
Delphi-Quellcode:
function GetDistances(ap: TPointDynArray): TDistDynArray;
var
iRow, iCol: integer;
begin
SetLength(Result, Pred(Length(ap)));
for iRow := Low(ap) to Pred(High(ap)) do
begin
SetLength(Result[iRow], Pred(High(ap) - iRow));
for iCol := Low(Result[iRow]) to High(Result[iRow]) do
Result[iRow, iCol] := Distance(ap[iRow], ap[Succ(iRow + iCol)]);
end;
end;
Reduziert die Einträge von n**2 auf (n/2)(n-2).
Grüße vom marabu