Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Pendel simulations Projekt (https://www.delphipraxis.net/184476-pendel-simulations-projekt.html)

EWeiss 29. Mär 2015 20:19


Pendel simulations Projekt
 
Projekt entfernt..

Popov 30. Mär 2015 17:25

AW: Pendel simulations Projekt
 
Sorry, aber ich glaube einen kleinen Bug gefunden zu haben.

Man kann das Pendel ja mit der Maus anfassen und auf eine Position bewegen. Solange der der (graue) Kreis komplett innerhalb des Rechtecks ist, solange funktioniert alles perfekt. Aber wenn es das Rechteck überschneidet, bekommt das Pendel Probleme. Entweder bleibt es am Rechteck stehen oder, wenn es gleich beim Start schon außerhalb ist, bewegt es sich nicht. Nach einer kurzen Zeit kommen dann Fehlermeldungen.

EWeiss 30. Mär 2015 17:27

AW: Pendel simulations Projekt
 
Zitat:

Zitat von Popov (Beitrag 1295377)
Sorry, aber ich glaube einen kleinen Bug gefunden zu haben.

Man kann das Pendel ja mit der Maus anfassen und auf eine Position bewegen. Solange der der (graue) Kreis komplett innerhalb des Rechtecks ist, solange funktioniert alles perfekt. Aber wenn es das Rechteck überschneidet, bekommt das Pendel Probleme. Entweder bleibt es am Rechteck stehen oder, wenn es gleich beim Start schon außerhalb ist, bewegt es sich nicht. Nach einer kurzen Zeit kommen dann Fehlermeldungen.

Danke werde das mal prüfen ;)

gruss

himitsu 30. Mär 2015 17:27

AW: Pendel simulations Projekt
 
Und unbedingt ScreenCenter ... nicht DesktopCenter.

Bei zwei Monitoren hab ich sonst zwei halbe Programmfenster. :stupid:

EWeiss 30. Mär 2015 17:27

AW: Pendel simulations Projekt
 
Zitat:

Zitat von himitsu (Beitrag 1295379)
Und unbedingt ScreenCenter ... nicht DesktopCenter.

Bei zwei Monitoren hab ich sonst zwei halbe Programmfenster. :stupid:

Ok wird ebenfalls behoben ;)

gruss

himitsu 30. Mär 2015 17:37

AW: Pendel simulations Projekt
 
Schade, dachte das ist kein starres Pendel, als ich zu Anfang eine Physik-Unit sah.

Oben genau auf die senkrechte Linie gelegt, ist es ganz schön stabil und fällt nicht runter,
aber in eine der Ecken gezogen (Kreis bissl größer als Rechteck), da ist das ganz schön am aufschauckeln/abprallen und kommt niemals zur Ruhe.


Und ich glaub ich hatte grade einen Überlauf produziert.
  • rechts etwas oberhalb der Mitte mitten auf den Ramen gesetzt
  • da passierte beim Run erstmals nichts
  • dann paar Mal Kick X/Y
  • schon sprang der hoch, "hüpfte" wahllos im Kreis umher und dann auch noch so weit extrem ausßerhalb ... jetzt ist der Ball ganz ges und nichtmal mehr die Verbindungslinie taucht mehr auf ... hilf wohl nur noch der Neustart
  • alles ist 0 (beim "Set" und Tau=-12,7199800000)
    und beim Klick in das Bild "Ungültige Gleitkommaoperation." kommt nur noch
[add] nicht ganz mittig auf die Linie (vielleicht bissl mehr nach außen) und dann braucht es nur "run" und bissl warten

EWeiss 30. Mär 2015 17:41

AW: Pendel simulations Projekt
 
Zitat:

Zitat von himitsu (Beitrag 1295385)
Schade, dachte das ist kein starres Pendeln, als ich erstmal einer Physik-Unit sah.

Oben genau auf die senkrechte Linie gelegt, ist es ganz schön stabil und fällt nicht runter,
aber in eine der Ecken gezogen (Kreis bissl größer als Rechteck), da ist das ganz schön am aufschauckeln/abprallen und kommt niemals zur Ruhe.


Und ich glaub ich hatte grade einen Überlauf produziert.
  • rechts etwas oberhalb der Mitte mitten auf den Ramen gesetzt
  • da passierte beim Run erstmals nichts
  • dann paar Mal Kick X/Y
  • schon sprang der hoch, "hüpfte" wahllos im Kreis umher und dann auch noch so weit extrem ausßerhalb ... jetzt ist der Ball ganz ges und nichtmal mehr die Verbindungslinie taucht mehr auf ... hilf wohl nur noch der Neustart
  • alles ist 0 (beim "Set" und Tau=-12,7199800000)
    und beim Klick in das Bild "Ungültige Gleitkommaoperation." kommt nur noch
[add] nicht ganz mittig auf die Linie (vielleicht bissl mehr nach außen) und dann braucht es nur "run" und bissl warten

Ja der Effekt ist mir auch schon untergekommen.

Werde das noch beheben.

gruss

himitsu 30. Mär 2015 17:54

AW: Pendel simulations Projekt
 
Ich kann das inzwischen gut reproduzieren. :angle:



Die "Funktion" des Knopfes "Set" hab ich irgendwie nicht kappiert?
Kick Y hat irgendwie keine wirklich spürbare Auswirkung,
aber mit Kick X hab ich grade 11 Überschläge hinbekommen (hörte auf zu drücken) und schaffte nochmal 3 :firejump:

Vielleicht noch paar ShortCuts für die Tasten?
Für die Nichtmausbenutzer :stupid:

EWeiss 30. Mär 2015 18:09

AW: Pendel simulations Projekt
 
Zitat:

Kick Y hat irgendwie keine wirklich spürbare Auswirkung,
Richtig noch nicht ganz fertig.
Aktuell ist es ein starres Pendel.

Kick Y soll dann die Schwerkraft simulieren (hüpfen des Pendel)

Zitat:

aber mit Kick X hab ich grade 11 Überschläge hinbekommen (hörte auf zu drücken) und schaffte nochmal 3
Jo da muss ich nochmal schauen wo der Fehler liegt.
Hab jetzt erst mal das mit dem ScreenCenter geändert.

Danke.

gruss

himitsu 30. Mär 2015 18:16

AW: Pendel simulations Projekt
 
Zitat:

Zitat von EWeiss (Beitrag 1295398)
Zitat:

aber mit Kick X hab ich grade 11 Überschläge hinbekommen (hörte auf zu drücken) und schaffte nochmal 3
Jo da muss ich nochmal schauen wo der Fehler liegt.

Wobei das ja eigentlich richtig ist. :stupid:

In der unteren Hälte immer wieder drücken (nur bei der Rechtsbewegung) und irgendwann ist man oben :cyclops:

EWeiss 30. Mär 2015 18:56

AW: Pendel simulations Projekt
 
Zitat:

Zitat von himitsu (Beitrag 1295402)
Zitat:

Zitat von EWeiss (Beitrag 1295398)
Zitat:

aber mit Kick X hab ich grade 11 Überschläge hinbekommen (hörte auf zu drücken) und schaffte nochmal 3
Jo da muss ich nochmal schauen wo der Fehler liegt.

Wobei das ja eigentlich richtig ist. :stupid:

In der unteren Hälte immer wieder drücken (nur bei der Rechtsbewegung) und irgendwann ist man oben :cyclops:

Zitat:

In der unteren Hälte immer wieder drücken (nur bei der Rechtsbewegung) und irgendwann ist man oben
Jup und Schwerkraft bedingt schaffst du halt die Überschläge.

Denke das ich schon richtig so.
Wenn der kreis außerhalb liegt stößt man an die Wände an.
Das dies unschöne Effekte ergibt sollte klar sein.

Vielleicht sollte ich das verschieben des schwarzen Mittelpunkt unterbinden.

gruss

EWeiss 30. Mär 2015 20:50

AW: Pendel simulations Projekt
 
Zitat:

Die "Funktion" des Knopfes "Set" hab ich irgendwie nicht kappiert?
Dann wird alles wieder auf 0 gesetzt und der Timer angehalten.

gruss

himitsu 30. Mär 2015 21:18

AW: Pendel simulations Projekt
 
Das mit 0 hatte ich desehn.

Angehalten wird ja auch noch mit "Stop", :zwinker:
aber irgendwie konnte ich praktisch keinen wirklich auffallenenden Unterschied feststellen, egal ob ich Set+Run oder Stop+Run benutze. (vorher laufen lassen)

EWeiss 30. Mär 2015 21:39

AW: Pendel simulations Projekt
 
Zitat:

Zitat von himitsu (Beitrag 1295434)
Das mit 0 hatte ich desehn.

Angehalten wird ja auch noch mit "Stop", :zwinker:
aber irgendwie konnte ich praktisch keinen wirklich auffallenenden Unterschied feststellen, egal ob ich Set+Run oder Stop+Run benutze. (vorher laufen lassen)

Na doch.. :)
Wenn du mit der Maus über das Image fährst bekommst du die aktuelle Cursor Position.
Diese wird mit "set" auf 0 gesetzt.
Ja ist etwas verwirrend das ganze ;)

Theoretisch könnte man sich das sparen.

gruss

EWeiss 1. Apr 2015 20:06

AW: Pendel simulations Projekt
 
Habe das Problem gefunden.

Wenn der Rote Ball sich außerhalb der schwarzen Box befindet liegt der Mittelpunkt der bewegten Masse außerhalb des Feldes.
Da darf er nicht hin.
Die Funktion CheckWalls dreht dann ständig das Vorzeichen um und der Hauptalgorithmus hängt in einer bösen Schleife.
Die Energie nimmt zu, bis der Ball es mal kurz schafft in den "legalen" Bereich zu kommen.
Da ist es aber schon zu spät.
Die Energie ist so hoch dass es zu einer numerischen "Explosion" kommt.

Ich muss also dafür sorgen das der Ball nicht außerhalb der Schwarzen Box gesetzt werden kann.
Werde es ändern wenn ich zeit dazu habe.

gruss

EWeiss 2. Apr 2015 20:42

AW: Pendel simulations Projekt
 
Neue Version.

Verbesserung der Grafikausgabe mit GDI Bordmitteln.
Wände werden nun gegengeprüft damit der Ball nicht außerhalb des Rechtecks verschoben werden kann.
Die Überläufe sollten damit behoben sein.
Zusätzlich noch das gleiche Projekt jedoch mit GDI+ als Grafikausgabe.
Es wird nun auf ein Bitmap gezeichnet anstelle des Canvas.
Das Bitmap wird anschließend in das Canvas Kopiert.

gruss

EWeiss 2. Apr 2015 23:18

AW: Pendel simulations Projekt
 
Noch ein paar Infos.

x, y sollten selbst erklärend sein genauso wie vx, vy.

Die Anzeige von dE (Energiezuwachs) kommt durch die Numerik zustande.
Rein theoretisch darf es ja keinen Energiezuwachs geben (Es gibt den Energieerhaltungssatz).
Wenn die Energie sich stark verändert, hat man einen Fehler im Algorithmus.

Dieser Fehler wurde behoben durch die Einschränkung des Balls (innerhalb des Rechtecks)
so das der Mittelpunkt der bewegten Masse sich nicht außerhalb des Feldes befindet.

In CheckWalls, wird die Geschwindigkeit an der schwarzen Box umgekehrt.
MeasureTau dient nur zur Zeitmessung bei kleinen Winkeln - ist aber noch nicht ganz perfekt.

Es wurde eine Reibung eingebaut.
Die beiden Zeilen unter "Reibung" in CalcStep kann man auskommentieren.
Daran liegt es, dass dE langsam anwächst, bzw. die Gesamtenergie abnimmt.

Zu KickX und KickY:
Der Kick ist nur sehr gering.
vKick = 0.25.
Wenn ihr mehr sehen wollt setzt ihn auf 1 bis 5.

KickY ist funktionell wenn die Reibung deaktiviert wurde.
In diesen Fall sind auch Überschläge möglich weil die Gesamtenergie nicht abnimmt ohne Reibung.

Ihr könnt auch mal mit D (Dämpfung) in 'SetParam' rumspielen.
D := 0 > Ball ohne Feder.
D := 1 weiche Feder
D > 1 wird die Feder steifer.

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:26 Uhr.

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