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 ?