(Konkurierendes?) Wegsuchsystem für Leiterbahnen
-
Ich habe hier ein kleines Projekt, einen Binärlogik-Simulator.
Die Verbindungen der Bauteile werden momentan als etwas hübschere Linien dargestellt.
Bei einfachen Schaltungen ist dass noch sehr übersichtlich, aber sobald es komplexer wird sind die Leiterbahnen nicht mehr zu überschauen.
Und genau dass möchte ich jetzt verbessern.
Dazu brauche ich jedoch einen Ansatz für ein Wegsuchsystem. Eventuell eines für konkurrierende Wege.
Meine groben Regeln sehen folgendermaßen aus:
- Die Leiterbahnen verlaufen auf dem Quadratfeldern
- Die Bahnen werden nur im 45° Winkel verlegt (Also 0° 45° 90° etc...)
- Sie können sich überschneiden wenn sie 90° zulaufen (Eventuell grafisch als kontaktlose Überschneidung darstellen)
- Die Bahnen laufen nicht durch Bauteile durchEs muss sich nicht im klassischem Sinne um einen möglichst optimalen Leiterbahnen Algorithmus handeln.
Denn Platzt ist kein Problem.
Daher kann eventuell auch ein Methode ausreichen die keine konkurrierende Leiterbahnen hat.Dabei würden kürzere Verbindungen (ausgehend von der Luftlinie) Vorrang haben und als erstes Erstellt werden. Erst nach deren Verlegung würde dann die nächst längere Verbindung versuchen ein Leitung zu ziehen.
Ungünstige Leitungen oder nicht mögliche Verlegungen würde der Benutzer dann einfach in denn Griff bekommen, indem er Bauteile verschiebt und mehr Platz schafft.Je nach Geschwindigkeit der Methode würde es dann auf Knopfdruck berechnet werden oder in einem extra Thread sobald Änderungen vorgenommen wurden.
Eventuell habt Ihr ja Ideen, oder schon mal an einem vergleichbaren Problemen gearbeitet.