Seite 1 von 1

GSP Gravitations-Simulations-Programm

Verfasst: 02.04.2007 22:02
von STARGÅTE
Tachchen,

Dieses Programm habe ich erst nur für die in Berlin neu eingefügte Präsentationsprüfungen für das ABI gemacht. Damit es nicht ganz um sonst war, denn am Prüfungstag hat man es nur 10min gesehen ^^ gebe ich es an euch weiter...

Dieses Programm simuliert die Gravitationskräfte auf einer 2D-Fläche jedoch mit den realen Werten für Masse, Abtand, ... aus dem Tafelwerk.

Alle Bewegungen können simuliert werden: Doppelsternsysteme, große Sonnensysteme, Planet-Mond-Systeme, ...
Man kann sogar in der Simulation mit der Maus Objekte verschieben, z.B. unsere Sonne.

Bild

HIER kann das Programm runtergeladen werden.

(Link und Bild aktuallisiert)

Einfach entpacken und ein Beispielsystem laden.

Verfasst: 02.04.2007 22:22
von Green Snake
Stargate sollte man mal einlochen, der ballert hier mit seinem Maschienengewehr Codes herum :mrgreen:

Cooles Proggy :allright:


[Edit]
Das Programm stürzt ab, wenn man mehrere Dateien nacheinander lädt.

Verfasst: 02.04.2007 22:40
von STARGÅTE
äm ja es kommen gelegendlich seltsamme BUGs zustande, ich vermute es liegt an meinem etwas "unsauberen" Umgang mit Threads, da überschneidet sich manchmal LESEN und SCHRIEBEN :oops:

Habe ich vorallem bei schnelleren PCs bemerkt (mehr als 2,5GHz).

Verfasst: 03.04.2007 11:11
von MVXA
So wie alle anderen Programme, die in PB geschrieben wurden und
unter Windows compliert wurden, so funktioniert leider auch dieses
nette Programm nicht. Schade, wäre wirklich interessant gewesen.

Verfasst: 03.04.2007 11:45
von AND51
@ Stargate: Das Problem habe ich auch bei meinem alten Programm. Auf schnelleren PCs stürzt es immer ab. Bevor ich meinen neuen PC bekommen habe, codete ich noch auf ner älteren Maschine, da ist mir das nicht aufgefallen.

Da gab's aber auch noch kein THREADSAFE und keine Mutex'. :wink:

Verfasst: 03.04.2007 13:18
von dige
Mit folgender Procedure kannst Du die Threads
zum Bsp. synchronisieren. Es wird sichergestellt
das die Variable Global_String nicht gleichzeitig
geschrieben werden kann.

Code: Alles auswählen


Global Global_String.s, Mutex.CRITICAL_SECTION

Procedure Write_ThreadSafe( Value.s )
  EnterCriticalSection_( @Mutex )
  Global_String = Value
  LeaveCriticalSection_( @Mutex )
EndProcedure