Einzelnen Beitrag anzeigen

Blamaster

Registriert seit: 20. Jul 2007
230 Beiträge
 
#1

Hilfe bei der Sortierung von Zahlen

  Alt 9. Sep 2010, 19:20
Delphi-Version: 7
Hi,

ich brauche mal etwas Hilfe bei der Sortierung von Zahlen unter der Berücksichtigung von Überschneidungen.

Ausgangssituation sind zwei arrays belibiger Länge mit verschiedenen Zahlenspannen.

Array1[0] := 10
Array2[0] := 15

.......

Nun sollen diese Wert grafisch so gezeichnet werden, dass es keine Überschneidungen der Linien gibt.

Delphi-Quellcode:
------ ---------
     --------
         -----------
Das Grafik kann man sich als eine Art Zeitstrahl vorstellen.

Mein aktueller Ansatz sah so aus:

Delphi-Quellcode:
for i := 0 to length(Array1) - 1 do
begin

  for y := 0 to i - 1 do
  begin
    // Wenn überschneidung von Zwei Werten auf einer Linie eintritt
    if Array1[i] <= (Array1[y] + Array2[y]) then inc(count);
  end;

  // Hier zeichnen

  count := 1
end;
Das ganze funktioniert allerdings nur solange es auch die passende Anzahl an Linienebenen gibt.

Delphi-Quellcode:
----- -------- <..... [*Siehe beschreibung]
   ------
     ---------
Diese Linie würde mit obigem Code nichtmehr passend gezeichnet werden, da die Linie von 2 weiteren geschnitten wird. inc(count) würde 2x aufgerufen werden somit steht count auf 3 die markierte Linie würde also überlappend mit der dritten Linie gezeichnet werden. Eigentlich soll sie aber in der ersten Linie wie oben gezeichnet liegen, da sie in der Linie ja momentan nicht geschnitten wird.

Jemand einen Ansatz ?

Geändert von Blamaster ( 9. Sep 2010 um 19:23 Uhr)
  Mit Zitat antworten Zitat