Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
ws1819:verkehrssimulation [2019/03/17 14:10] jonathan_p |
ws1819:verkehrssimulation [2019/04/01 19:59] (aktuell) stefanborn |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | Wir haben nichts auszusetzen. :-) | ||
+ | |||
====== Verkehrssimulation ====== | ====== Verkehrssimulation ====== | ||
Zeile 5: | Zeile 7: | ||
==== Was kann unsere Simulation? ==== | ==== Was kann unsere Simulation? ==== | ||
- | Mit der von uns entwickelten Verkehrssimulation kann ein einfaches Straßennetz mit Kurven, Kreuzungen und einspurigen Fahrbahnen angelegt werden und anschließend der Verkehrsfluss mit beliebig vielen Fahrzeugen betrachtet werden. Den Fahrzeugen können dabei Eigenschaften, wie Wunschgeschwindigkeit, Maximalbeschleunigung und Reaktionszeit übergeben werden. | + | Mit der von uns entwickelten Verkehrssimulation kann ein einfaches Straßennetz mit Kurven, Kreuzungen und einspurigen Fahrbahnen angelegt werden und anschließend der Verkehrsfluss mit beliebig vielen Fahrzeugen betrachtet werden. Den Fahrzeugen können dabei Eigenschaften, wie Wunschgeschwindigkeit, Maximalbeschleunigung und Reaktionszeit übergeben werden. An den Kreuzungen gibt es die Möglichkeit, Ampelschaltungen anzupassen und die daraus resultierenden Veränderungen zu betrachten. |
+ | |||
+ | {{:ws1819:screenshot_7_.png|}} | ||
---- | ---- | ||
Zeile 15: | Zeile 19: | ||
Unser ursprüngliches Ziel war es, einen kleinen Ausschnitt von Berlins Straßennetz in unser Programm zu übernehmen und anschließend zu optimieren. | Unser ursprüngliches Ziel war es, einen kleinen Ausschnitt von Berlins Straßennetz in unser Programm zu übernehmen und anschließend zu optimieren. | ||
- | ==== Zwischenziele: ==== | + | ==== Zwischenziele ==== |
* OpenGL, pygame und pyglet Grundlagen verstehen | * OpenGL, pygame und pyglet Grundlagen verstehen | ||
Zeile 25: | Zeile 29: | ||
* Benutzeroberfläche | * Benutzeroberfläche | ||
- | ==== Verwendete Literatur: ==== | + | ==== Verwendete Literatur ==== |
* TREIBER, Martin und Arne KERSTING, 2010. //Verkehrsdynamik und -simulation: Daten, Modelle und Anwendungen der Verkehrsflussdynamik//. Heidelberg: Springer. ISBN 978-3-642-05227-9 | * TREIBER, Martin und Arne KERSTING, 2010. //Verkehrsdynamik und -simulation: Daten, Modelle und Anwendungen der Verkehrsflussdynamik//. Heidelberg: Springer. ISBN 978-3-642-05227-9 | ||
Zeile 38: | Zeile 42: | ||
* pyglet Dokumentation: [[https://pyglet.readthedocs.io/en/pyglet-1.3-maintenance/]] | * pyglet Dokumentation: [[https://pyglet.readthedocs.io/en/pyglet-1.3-maintenance/]] | ||
* Simulationsbeispiele: [[http://traffic-simulation.de/]] | * Simulationsbeispiele: [[http://traffic-simulation.de/]] | ||
+ | |||
+ | ==== Aufgabenverteilung ==== | ||
+ | |||
+ | Jonathan: | ||
+ | * Grafische Umsetzung (also anfangs noch PyOpenGL, später dann PyGame) | ||
+ | * Programmgrundstruktur aus drei Klassen und einem ''Loop'', der ständig ausgeführt wird | ||
+ | * Die Methoden ''change'', ''fahre'', ''zeichne'', ''pruefe_ampel'', ''pruefe_kollision'', ''zeichne_fahrbahn'', ''zeichne_ampel'', ''phasen'' | ||
+ | * Das "eckige", aber zuverlässige Abbiegen der Fahrzeuge | ||
+ | * Die Wiki | ||
+ | |||
+ | Seohyun: | ||
+ | * Das "runde" Abbiegen der Fahrzeuge | ||
+ | * Die Methoden ''fahre'' und ''pruefe_ampel'' für das Abbiegen angepasst | ||
+ | * Die ''__init__''-Methoden angefangen | ||
+ | * Die Erklärung zur ''abbiegen''-Methode in der Wiki | ||
===== Protokolle ===== | ===== Protokolle ===== | ||
Zeile 46: | Zeile 65: | ||
Unser Programm besteht aus den drei Klassen ''Fahrzeug'', ''Fahrbahn'' und ''Ampel''. Bei der visuellen Darstellung haben wir uns letztendlich für PyGame entschieden, da dieses viel einfacher ist, als PyOpenGL und für unsere Simulation vollkommen ausreicht.\\ | Unser Programm besteht aus den drei Klassen ''Fahrzeug'', ''Fahrbahn'' und ''Ampel''. Bei der visuellen Darstellung haben wir uns letztendlich für PyGame entschieden, da dieses viel einfacher ist, als PyOpenGL und für unsere Simulation vollkommen ausreicht.\\ | ||
- | Das Programm besitzt eine ''Haupt-Schleife'', die mehrfach in der Sekunde ausgeführt wird. In jedem Zeitschritt des Programms wird zuerst der Hintergrund, also das Straßennetz mit Pygame gezeichnet: | + | Das Programm besitzt eine Haupt-Schleife, die mehrfach in der Sekunde ausgeführt wird. In jedem Zeitschritt des Programms wird zuerst der Hintergrund, also das Straßennetz mit Pygame gezeichnet: |
<code python> | <code python> | ||
for row in range(maphoehe): | for row in range(maphoehe): |