Hallo,
ist die Datenstruktur nicht etwas unpassend?
Mit einer Punkte Liste waere es etwas kompakter.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| Type TPointex = record x, y: double; end; tPointList = array of TPointex;
tPointIdx : integer; TLine = record Von_A,Nach_B: tPointIdx; end; TLines = array of TLine; |
Das ist zwar indirekter im Zugriff, aber man braucht nicht staendig Fliesskommazahlen zu vergleichen/hashen , sondern nur die Nummern der Punkte.
Diese Punkteliste koennte auch schon nach x und bei gleichem x nach y sortiert sein ( links oder unter ) .Zudem kann man leichter einen Punkt veraendern und musz nicht alle Linien wegen dieser Aenderung durchsuchen.
Es ist ja auch die Frage , ob eine Linie von A nach B auch das gleiche wie eine Linie von B nach A sein soll, dann koennte man einfach A links oder unter B waehlen. Im PunkteIdx Von_A < Nach_B.
Grusz Horst