Vorüberlegungen zum Lösungsalgorhitmus
Definition Fertig: Eine noch zu betrachtende Kante ist genau dann fertig, wenn das Maximum der Distanz zum Startpunkt kleiner ist als das kleinste Minimum der noch zu betrachtenden Kanten Hier müssen wir genau arbeiten, da wir Intervalle und keine Kanten betrachten. Eine Kante ist also dann Fertig, wenn alle „fertigen“ Intervalle zusammen die gesamte Länge der Kante abdecken
1) Übergebe einen Anfangspunkt und finde das Dreieck in dem er sich befindet
2) Startauflösung festlegen, Berechne für die ersten drei Kanten alle Punkte (je nach Auflösung)
3) Suche Kante mit kleinstem Minimum
4) Laufe „geradeaus“ vom Anfang über diese Kante und prüfe, in in welchem Dreieck wir uns befinden sobald wir über die Kante rechnen. Prüfe außerdem ob eine Kante fertig ist.
5) Rechne „über die Kante“ und prüfe an welchen beiden Kanten wir ankommen
6) Teile die ursprüngliche Kante in zwei Intervalle entsprechend dazu, welche Kante der „lichtkegel“ im zweiten Dreieck trifft
7) Suche die Kante in der Liste zu betrachtenden Kante mit dem kleinsten Minimum und Führe Schritte 4,5,6 noch einmal durch.
Im Grunde haben wir heute nichts geschafft: Heute haben wir weiteere Attribute, die wir unseren Objekten zuweisen wollen, beschlossen.
Dreiecke werden nun auch eine Ebenenengleichung, einen Normalvektor, und eine Funktion, die einem X,Y Punkt in einem Dreieck eine Z Koordinate zuweist.
Punkte erhalten als Attribut zusätzlich ihre Z Koordinate und ihren zugehörigen Ortsvektor.
Schließlich werden wir „Gerade aus“ definieren.
Heute haben wir folgende Datenstruktur festgelegt: Dreiecke als Objekte mit den Attributen:
Punkte als Objekte mit den Attributen:
Kanten
Funktion, die Kanten erstellt muss sicher gehen, dass keine Kante doppelt existiert.
Folgende Lösungsüberlegungen: