Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Stausimulation (ein paar Fragen) (https://www.delphipraxis.net/39358-stausimulation-ein-paar-fragen.html)

Nicolai1234 1. Feb 2005 14:22


Stausimulation (ein paar Fragen)
 
Ich habe hier neulich von der Idee einer Stausimulation gelesen.
Da ich mich durchaus für sowas interessieren, wollte ich mal versuchen sowas zu machen, bwohl ich vorher noch nie eine Simulation erstellt habe.
Nun meine Frage:
:arrow: wie macht man beispielsweise die Straße/Autos. (also welche Art von Variable etc. sollte man da nehmen?
:arrow: Wie sollte man bei solch einer Art von Simulation die Zeit voranschreiten lassen? Sollte man das mit einem Timer machen, der ob 1/1000 Sekunde steht? Wohl eher kaum , oder?

Ich hoffe ihr könnt mir bei diesen beiden Fragen weiterhelfen, da ich gerne eine solche Simulation erstellten würde.
Danke im voraus

freak4fun 1. Feb 2005 14:36

Re: Stausimulation (ein paar Fragen)
 
Also als Auto würde ich eine Klasse oder einen Record nehmen.

Mit der Zeit hab ich keine Ahnung.

*war übrigens meine Idee*

MfG
freak

tommie-lie 1. Feb 2005 14:46

Re: Stausimulation (ein paar Fragen)
 
Zitat:

Zitat von Nicolai1605
:arrow: wie macht man beispielsweise die Straße/Autos. (also welche Art von Variable etc. sollte man da nehmen?

Ich würde 'ne Klasse nehmen, die das erledigt, was ein Auto eben so macht, und Zeiger auf den Vorder- und Hintermann enthält, damit man von einem Objekt ausgehend jeweils die Geschwindigkeiten und Position der umliegenden Autos hat.
Und für die Straße braucht man doch dann gar kein Objekt, die spielt doch für die Simulation keine Rolle (abgesehen von der Anzahl der Spuren). Bei der Ausgabe kannst du ja dann den Untergrund grau färben, wenn du willst :mrgreen:

Zitat:

Zitat von Nicolai1605
:arrow: Wie sollte man bei solch einer Art von Simulation die Zeit voranschreiten lassen? Sollte man das mit einem Timer machen, der ob 1/1000 Sekunde steht?

Wenn's dir gefällt, kannst du's auch so machen, aber du kannst auch einen Thread erzeugen, der in einer Endlosschleife läuft und jeweils die Auto-Klassen updatet. Als Zeit nimmt man dann die Zeitdifferenz, berechnet aus dem Zeitstempel der letzten Berechnung und der aktuellen Zeit. In 'ner Schleife gehst du alle Autos durch und rufst ihre Update-Methoden auf, die dann dafür sorgen daß sich die Position anhand der Geschwindigkeit verändert, die Zigarettenkippen aus dem Fenster geworfen werden und was ein Auto sonst noch so macht.

Nicolai1234 1. Feb 2005 15:05

Re: Stausimulation (ein paar Fragen)
 
Bei der Straße war es mehr darauf bezogen, wie ich das mache, dass man sieht dass das aAuto fährt bzw. wie schnell es fährt.
Wenn ich ein Auto auf ein grauen Untergrund setze und es fahren lasse, dann ist es relativ schnell "weg vom Fenster".
Wenn ich das Fenster "nachrücken" lasse, sieht man nicht mehr dass das Auto fährt.

Wie kann ich also eine Endlosstraße erstellen auf der man erkennt, dass ein Auto fährt?

malo 1. Feb 2005 15:09

Re: Stausimulation (ein paar Fragen)
 
Du könntest die "Umgebung" in die entgegengesetzte Richtung steuern, also Bäume, Häuser ect entgegenbewegen. Dabei musst du jedoch immer neue Umgebungsobjekte Erzeugen und die durchs Bild huschen lassen ;)

freak4fun 1. Feb 2005 15:11

Re: Stausimulation (ein paar Fragen)
 
Oder einen Kreisverkehr. :mrgreen:

*am besten mit Rundenzähler* :mrgreen:

PS: Die Grafik spielt keine Rolle! :zwinker:

MfG
freak

Elite 1. Feb 2005 15:13

Re: Stausimulation (ein paar Fragen)
 
Ich habe auch vor langer Zeit mal eine Verkehrssimulation geschrieben. (Dieser Thread, 2. Post)
Dort habe ich die Autos und Ampeln einfach als vergrößerte Pixel dargestellt und die Straßen waren einfach 2-pixel-breite, graue Linien. Es lief quasi alles über Farberkennung, was aus heutiger Sicht nicht mehr denkbar ist, damals aber voll und ganz genügte.
Bitte ne PN, wenn du dir das Teil ma ansehen willst.

Nikolas 1. Feb 2005 15:16

Re: Stausimulation (ein paar Fragen)
 
Bau doch einfach eine Ringstraße, dann hast du keine Probleme mit den Autos.
Bei den Autos ist es natürlich interessant, verschiedene Charakterparameter ;) einzubauen, wie
- Beschleunigungsvermögen,
- Endgeschwindigkeit,
- Bremsvermögen,
- Willen zum Überholen,
- Sicht nach vorne...

Dann könntest du über diese Parameter den perfekten Autofahrer zusammen stellen.
So etwas ist auch gut für die Schule geeignet. Viel zum Anschauen und rumspielen, da kann jeder mitdenken und gute Fragen stellen, auch wenn man von Info weniger Ahnung hat.

Ich hab mal so eine Simulation bei den Mathematik-Tagen vorletztes Jahr an der Uni Freiburg gesehen, vielleicht kannst du da was finden, oder jemanden anschreiben und ihn bitten, dir da die Infos zu schicken.

Binärbaum 1. Feb 2005 15:20

Re: Stausimulation (ein paar Fragen)
 
Wenn es graphisch etwas anspruchsvoller sein soll, sollte man sich überlegen, ob man die Grafik nicht gleich mit OpenGL oder DirectX macht (ich würde ersteres empfehlen). Falls man es damit aber übertreibt, kann es passieren, dass mehr Rechenaufwand für die Grafik als für die eigentliche Simulation draufgeht.

MfG
Binärbaum

freak4fun 1. Feb 2005 15:26

Re: Stausimulation (ein paar Fragen)
 
Ich glaub ich bekomme eine Grafikallergie. :pale:

Naja, liegt wahrscheinlich daran das mir immer nur Sachen einfallen, bei dem die Grafik im vordergrund steht. Simulier das ganze durch und geb am Ende aus, wann der Stau war und fertig.

Ach mach doch was du willst. :zwinker:

MfG
freak

tommie-lie 1. Feb 2005 15:26

Re: Stausimulation (ein paar Fragen)
 
Zitat:

Zitat von Nicolai1605
Bei der Straße war es mehr darauf bezogen, wie ich das mache, dass man sieht dass das aAuto fährt bzw. wie schnell es fährt.
Wenn ich ein Auto auf ein grauen Untergrund setze und es fahren lasse, dann ist es relativ schnell "weg vom Fenster".
Wenn ich das Fenster "nachrücken" lasse, sieht man nicht mehr dass das Auto fährt.

Je nach größe wirst du immer nur einen Ausschnitt der Straße zeigen können, es sei denn du machst wirklich einen Kreisverkehr (muss ja nicht rund sein, kann auch eckig sein).

ibp 1. Feb 2005 15:27

Re: Stausimulation (ein paar Fragen)
 
Zitat:

Zitat von Nicolai1605
Bei der Straße war es mehr darauf bezogen, wie ich das mache, dass man sieht dass das aAuto fährt bzw. wie schnell es fährt.
Wenn ich ein Auto auf ein grauen Untergrund setze und es fahren lasse, dann ist es relativ schnell "weg vom Fenster".
Wenn ich das Fenster "nachrücken" lasse, sieht man nicht mehr dass das Auto fährt.

Wie kann ich also eine Endlosstraße erstellen auf der man erkennt, dass ein Auto fährt?


wichtig ist nicht das auto, sondern die abstände zu den anderen autos, also kannst du 1 pixel oder ähnliches nehmen. machs erstmal simpel, dann die grafik!

Code:
               *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
        ^
        x
* : autos die sich auf den ^ bremspunkt zubewegen!
|||| : Entfernungsmessung

was passiert nun am bremspunkt knallt das nachfolgende auto drauf? kettenreaktion nach hintne!
vereinfachung sollte zunächst sein, dass ein auto nur auf das vorausfahrende auto reagieren kann!

Jelly 1. Feb 2005 15:56

Re: Stausimulation (ein paar Fragen)
 
@Nicolai1605:
du rollst das Problem von der falschen Seite auf... Hast du dir überhaupt schon mal Gedanken gemacht, wie du mathematisch den Stau simulieren willst. Das sollte mal das erste sein, worüber du dir Gedanken machen sollst, bevor du loslegst wie wild klassen oder Records zu definieren.

Timer fallen schon deshalb weg, weil du das Ganze wohl kaum in Echtzeit simulieren wirst, dafür ist das Thema zu komplex. Bedenke, ein Stau entsteht nicht bei 3 Autos, sondern erst bei vielen mehr. Das Verhalten jedes einzelnen Auto hat Auswirkungen auf alle anderen, oder zumindest auf alle Hintermänner. Mathematisch heisst das, du kriegst ein schickes Differentialsystem mit hunderten von Unbekannten. Wenn du das in Echtzeit lösen willst, ist dir der Nobelpreis sicher :zwinker:

Mein Tip: besorg dir erst mal ein paar informative Quellen, die sich mit dem Thema befassen. Es gibt sicherlich viele Unis, die sowas schon mal versucht haben zu simulieren. Glaub mir, das Thema ist bischen komplexer als einfach ne Strasse und paar Autos zu modellieren :wink:

Nikolas 1. Feb 2005 16:01

Re: Stausimulation (ein paar Fragen)
 
Für ein paar Einblicke in die Thematik reichen sicher die schon erwähnten Eigenschaften der Autos. Solange das Programm nicht an das Straßenbauamt verkauft werden soll, muss man sich da sicher nicht so sehr an den Differentialsystemen verbeissen, sondern kann alles numerisch annähern.
Zitat:

Wenn du das in Echtzeit lösen willst, ist dir der Nobelpreis sicher
Dafür bekommt man eher die Fields-Medaille, weil es doch sehr in die Mathematik reinspielt. (Und da Nobel's Frau angeblich mal ein Affäre mit einem Mathematiker hatte, gibt's keinen Mathe-Nobel-Preis :mrgreen: )

malo 1. Feb 2005 16:06

Re: Stausimulation (ein paar Fragen)
 
[Kurz OT]
Zitat:

Hast du dir überhaupt schon mal Gedanken gemacht, wie du mathematisch den Stau simulieren willst. Das sollte mal das erste sein, worüber du dir Gedanken machen sollst, bevor du loslegst wie wild klassen oder Records zu definieren.
Und genau deshalb fang ich gar nicht mal an zu simulieren, weil ich keinerlei Spaß daran sehe, mir über irgendwelche Formeln gedanken zu machen und nach den Informationen zu suchen. Hat doch kaum noch was mit dem eigentlichen Programmieren zu tun :stupid:

[/Kurz OT]

Nicolai1234 1. Feb 2005 16:12

Re: Stausimulation (ein paar Fragen)
 
Zitat:

Zitat von Jelly
@Nicolai1605:
du rollst das Problem von der falschen Seite auf... Hast du dir überhaupt schon mal Gedanken gemacht, wie du mathematisch den Stau simulieren willst. Das sollte mal das erste sein, worüber du dir Gedanken machen sollst, bevor du loslegst wie wild klassen oder Records zu definieren.

Das Konzept, wie sich die Autos verhalten, habe schon erstellt. Dazu liegen jetzt vor mit ein paar Din-A4 Zettel. Dabei habe ich die Sichtweite, den optimalen Abstand, gewünschte Geschwindigkeit etc. alles bedacht. Sogar die "Regeln", wann ein Auto überholt und wann nicht. (bei einer zweispurigen Autobahn)
Also sollte das Konzept stehen.
Mathematisch gesehen, habe ich auch genug Kenntnisse, was Geschwindigkeit und so weiter angeht. Ich hoffe mal das aus der Schule reicht. :roll:

Da ich das alle shabe, wollte ich jetzt an die Umsetzung gehen. Dabei habe ich halt immernoch das Problem, die Straße darzustellen (nicht visuell sondern "intern").

Die Frage zum Beispiel ist, was man nehmen sollte. Man kann probieren eine Endlosstraße zu bauen, auf die man tausende von Autos schickt, bis ein Stau da ist oder man kann eine bestimmte Strecke nehmen. Als Bespiel eine Auffädelung und 30 Kilometer später eine Baustelle. Nach der Baustelle, geht es eh meistens schnell weiter, also bräuchte man dann "nur" die 30 Kilometer davor zu simulieren.

Binärbaum 1. Feb 2005 16:23

Re: Stausimulation (ein paar Fragen)
 
Also ich würde dir raten, erstmal "nur" die 30 Kilometer oder einen ähnlich "kleinen" Abschnitt zu simulieren. Wenn das dann funktioniert kann man es ja auf mehrere Straßen, Autobahnen, etc. ausdehnen. Man sollte bei einem solchen Problem erstmal einfach anfangen, kompliziert wird es dann schon von allein.

MfG
Binärbaum

ibp 1. Feb 2005 16:27

Re: Stausimulation (ein paar Fragen)
 
Zitat:

Zitat von Nicolai1605
Die Frage zum Beispiel ist, was man nehmen sollte. Man kann probieren eine Endlosstraße zu bauen, auf die man tausende von Autos schickt, bis ein Stau da ist oder man kann eine bestimmte Strecke nehmen. Als Bespiel eine Auffädelung und 30 Kilometer später eine Baustelle. Nach der Baustelle, geht es eh meistens schnell weiter, also bräuchte man dann "nur" die 30 Kilometer davor zu simulieren.

ich würde an deiner stelle erstmal nur eine spur simulieren! staus entstehen immer an einer stelle und setzen sich nach "hinten fort" zum einen durch "beschleunigung" (meist die negative) und zum anderen, wenn die spur von autos "gesättigt" ist! ich würde an deiner stelle mit dem abbremsen des ersten autos als simulation beginnen! du gibst dann dem ersten auto den befehl nach wegstrecke x abzubremsen und dann zu beschleunigen. dann müssen die nachfolgenden autos nach deinen vorgaben reagieren.

ibp 1. Feb 2005 16:38

Re: Stausimulation (ein paar Fragen)
 
...später kann man das dann ja erweitern und zwar auf unterschiedliches verhalten einzelner autos. in der esten phase deiner simulation, sollten die autos am beginn erstmal alle die gleiche geschwindigkeit haben und den gleichen abstand. wenn dir das gelungen ist kannst du den autos mehr realität verpassen, indem du einen sicherheitsabstand zum vordermann definierst. wird dieser unterschritten, so beschleunigt das auto solange, bis es den abstand unterschritten hat, dann muss es wieder abbremsen...etc das bedeutet auf deiner perlenkette pulsieren die perlen vereinzelt hin und her!

Jelly 1. Feb 2005 17:18

Re: Stausimulation (ein paar Fragen)
 
Zitat:

Zitat von malo
Und genau deshalb fang ich gar nicht mal an zu simulieren, weil ich keinerlei Spaß daran sehe, mir über irgendwelche Formeln gedanken zu machen und nach den Informationen zu suchen. Hat doch kaum noch was mit dem eigentlichen Programmieren zu tun :stupid:

:shock:
Na dann kann mir ja was werden, was programmieren wo du nicht mal weisst wie :wall:

Oxmyx 2. Feb 2005 12:55

Re: Stausimulation (ein paar Fragen)
 
Zitat:

Zitat von malo
[Kurz OT]
Zitat:

Hast du dir überhaupt schon mal Gedanken gemacht, wie du mathematisch den Stau simulieren willst. Das sollte mal das erste sein, worüber du dir Gedanken machen sollst, bevor du loslegst wie wild klassen oder Records zu definieren.
Und genau deshalb fang ich gar nicht mal an zu simulieren, weil ich keinerlei Spaß daran sehe, mir über irgendwelche Formeln gedanken zu machen und nach den Informationen zu suchen. Hat doch kaum noch was mit dem eigentlichen Programmieren zu tun :stupid:

[/Kurz OT]

Ich würde mal behaupten, dass bei der Programmentwicklung maximal 10% der Zeit für das eigentliche Schreiben von Quellcode draufgeht. Den Rest verbringt man mit der Theorie und Bugfixing.

pajofego 2. Feb 2005 13:12

Re: Stausimulation (ein paar Fragen)
 
Wie?!? Eine Stausimulation schreiben ohne die zugrundeliegenden Gesetze bzw. Gleichungen zu kennen?!? :shock:

O.K.! Wenn das alles nur Frauen sind, dann kannst du bestimmt alles mit Randomize simulieren! :lol:

Gruss pajofego

ibp 2. Feb 2005 13:24

Re: Stausimulation (ein paar Fragen)
 
halloooooo! :warn:

1. hat Nicolai1605 interesse am thema und
2. war das
Zitat:

Und genau deshalb fang ich gar nicht mal an zu simulieren, weil ich keinerlei Spaß daran sehe, mir über irgendwelche Formeln gedanken zu machen und nach den Informationen zu suchen. Hat doch kaum noch was mit dem eigentlichen Programmieren zu tun
ein unqualifizierter beitrag (spam) von malo

Nicolai1234 2. Feb 2005 14:07

Re: Stausimulation (ein paar Fragen)
 
thx.
ich habe das interesse und das hier geschrieben: (nicht das andere)

Zitat:

Zitat von Nicolai1605
Zitat:

Zitat von Jelly
@Nicolai1605:
du rollst das Problem von der falschen Seite auf... Hast du dir überhaupt schon mal Gedanken gemacht, wie du mathematisch den Stau simulieren willst. Das sollte mal das erste sein, worüber du dir Gedanken machen sollst, bevor du loslegst wie wild klassen oder Records zu definieren.

Das Konzept, wie sich die Autos verhalten, habe schon erstellt. Dazu liegen jetzt vor mit ein paar Din-A4 Zettel. Dabei habe ich die Sichtweite, den optimalen Abstand, gewünschte Geschwindigkeit etc. alles bedacht. Sogar die "Regeln", wann ein Auto überholt und wann nicht. (bei einer zweispurigen Autobahn)
Also sollte das Konzept stehen.
Mathematisch gesehen, habe ich auch genug Kenntnisse, was Geschwindigkeit und so weiter angeht. Ich hoffe mal das aus der Schule reicht. :roll:



Alle Zeitangaben in WEZ +1. Es ist jetzt 23:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz