![]() |
Pendel simulations Projekt
Projekt entfernt..
|
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. |
AW: Pendel simulations Projekt
Zitat:
gruss |
AW: Pendel simulations Projekt
Und unbedingt ScreenCenter ... nicht DesktopCenter.
Bei zwei Monitoren hab ich sonst zwei halbe Programmfenster. :stupid: |
AW: Pendel simulations Projekt
Zitat:
gruss |
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.
|
AW: Pendel simulations Projekt
Zitat:
Werde das noch beheben. gruss |
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: |
AW: Pendel simulations Projekt
Zitat:
Aktuell ist es ein starres Pendel. Kick Y soll dann die Schwerkraft simulieren (hüpfen des Pendel) Zitat:
Hab jetzt erst mal das mit dem ScreenCenter geändert. Danke. gruss |
AW: Pendel simulations Projekt
Zitat:
In der unteren Hälte immer wieder drücken (nur bei der Rechtsbewegung) und irgendwann ist man oben :cyclops: |
AW: Pendel simulations Projekt
Zitat:
Zitat:
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 |
AW: Pendel simulations Projekt
Zitat:
gruss |
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) |
AW: Pendel simulations Projekt
Zitat:
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 |
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 |
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 |
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 16:21 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