Wie startet man 2 (oder mehrere) Schieberegler gleichzeitig?

Petrus3743 shared this question 2 years ago
Answered

In einer Konstruktion sind für zwei unterschiedliche Drehungen (Richtung und Geschwindigkeit) zwei Schieberegler erforderlich. Wie kann man die beiden (ggf. mehrere) Schieberegler für eine Animation (GIF-Datei) gleichzeitig starten?


Für die Bemühungen ein Dankeschön im Voraus!

Mit Gruß Petrus3743

Best Answer
photo

Ja, man kann natürlich noch beliebig viele Bewegungen dazu machen, z.B. auch diese Kreisbewegung (siehe Anhang). Mir ging es mehr darum, dass man sich für den Hauptslider eine Größe wählt, die man leicht interpretieren kann und von der man dann alles leicht ableiten kann. Bei diesen Bewegungen bietet sich halt das Modell "Zeit" an, und man beschreibt die Bewegungen dann halt mit Hilfe von Startpositonen und Geschwindigkeiten, was in diesem Fall auch genau mit den Standard-Parametrisierungen für solche Bewegungen übereinstimmt, was die Beschreibung vermutlich generell einfacher macht. (Je nachdem, was Du da sonst noch machen möchtest.)


Generell kann man natürlich auch versuchen, es sich einfach zu machen ohne große Uminterpretationen und "einfach" einen Master-Regler machen (oder einen der vorhandenen dazu bestimmen), der basierend auf den Regler-Einstellungen mittels Skript die Werte der anderen Regler setzt. Der Master-Regler ist dann auch der einzige, für den die Animation eingeschaltet ist. Im Anhang hab ich mal Deine Datei um so einen Master-Regler erweitert, dessen OnUpdate-Skript einfach die Werte für b_{1} und n setzt. (Hab es mir da einfach gemacht, man könnte da natürlich auch mit zusätzlichen Variablen noch die Anfangswerte festlegen und sowas.) Man muss dabei "nur" drauf schauen, was die anderen Regler für Einstellungen haben (Min, Max, Schrittweite, Geschwindigkeit), denn das alles beeinflusst die Umrechnung der Werte des Master-Reglers auf die anderen Werte, da das Gesamtverhalten ja gleich bleiben soll. (Im Beispiel hatten die Regler ja unterschiedliche Geschwindigkeiten, was das Umrechnen etwas lästig gestaltet hat.) Das große Problem ist dann, dass man das Skript immer lästig anpassen muss, wenn man die Min, Max, Schrittweite, Geschwindigkeit einzelner Regler ändern will. Das halte ich alles für wesentlich unangenehmer als das Grundkonzept so zu ändern, dass man mit gut vorstellbaren Größen und standardisierten Einstellungsmöglichkeiten arbeiten kann.


Ach ja, anfangs dachte ich übrigens, dass es eine sehr einache Lösung gibt, indem z.B. der Masterregler einfach per Skript die Animation der anderen Regler einschaltet (z.B. ganz banal StartAnimation(n, true) im Update-Skript des Master-Reglers). Für die Animation innerhalb von Geogebra funktioniert das auch, aber beim Export in GIF hat das leider keine Auswirkungen.

Comments (10)

photo
2

Bin nicht 100%ig sicher, was Du genau möchtest.

Wenn Du auf Play klickst werden laufen alle auf Animation gestellten Schieberegler gleichzeitig los. Solange es also nicht noch weitere Kopplungen geben soll, musst Du also eigentlich gar nichts weiter tun, lediglich die Regler auf die gewünschten Startwerte stellen und die Animation starten.

Wenn es noch komplizierte Kopplungen gibt (also sich das Verhalten eines Schiebereglers abhängig vom Wert eines anderen ändern soll), dann ist es oft praktischer, die Animation der Regler auszustellen und stattdessen einen einizigen Extra-Regler für die Animation zu haben, dessen OnUpdate-Skript die Werte der anderen Regler entsprechend setzt.

photo
1

Die Frage ist, wie kann ich eine Animation mit mehreren gleichzeitig laufenden Schiebereglern als GIF-Datei exportieren?

photo
1

Ah, ich sehe. Beim Export zu GIF (hab ich bisher nie gemacht) kann man nur einen Schieberegler angeben. Also entweder mit diesem Schieberegler die Variablen der anderen Regler steuern oder - was bei Deinem Epizyklischen Bewegungen vermutlich gut klappt - generell das Ganze so designen, dass nur ein Regler (quasi die Zeit-Variable) gebraucht wird.

Apropos: hat es eine besondere Bewandnis, dass Du den Punkt P über diese vielen Konstruktionen erzeugst. Denn generell haben alle Bewegungskurven (von K, C, P) recht einfache Parametrisierungen, über die man das leichter machen könnte.)

photo
1

24406c340a8dd85584893cf48b9e9da6

Hier ist mal ein kleines Beispiel für epizyklische Bahnen, das mit einen Schieberegler (Zeitintevall) auskommt. Alle weiteren Animationen, für die man evtl. extra Schieberegler machen würde, müssen nur entsprechend so angepasst werden, dass sie stattdessen auf dem einen basieren. Das sind im Normalfall ja nur lineare Transformationen.

Man kann die Radien, Startwinkel und Umlaufgeschwindigkeiten beliebig einstellen. Die Spur des Punktes ist hier auch direkt als Kurve berechnet, damit es bei zügiger Animation nicht so punktuell ist. (Das ist insbesondere für das GIF relevant, da sehr viele Frames ewig dauern in der Berechnung und außerdem das GIF groß machen.) Anmerkung: Falls Du nur an Ellipsen interessiert bist, dann müssen die Umlaufgeschwindigkeiten immer Gegenzahlen sein, ansonsten gibt es halt andere schöne Kurven.

photo
1

Danke, das sieht sehr gut aus! Nur, du hast bestimmt gesehen in meiner Konstruktion dreht sich auch noch der Punkt im blauen Kreis in entgegengesetzter Richtung. Dann sind es m. E. doch, bezogen auf meine Frage , grundsätzlich 2 unterschiedliche Bewegungen, oder sehe ich das falsch?

photo
1

Ja, man kann natürlich noch beliebig viele Bewegungen dazu machen, z.B. auch diese Kreisbewegung (siehe Anhang). Mir ging es mehr darum, dass man sich für den Hauptslider eine Größe wählt, die man leicht interpretieren kann und von der man dann alles leicht ableiten kann. Bei diesen Bewegungen bietet sich halt das Modell "Zeit" an, und man beschreibt die Bewegungen dann halt mit Hilfe von Startpositonen und Geschwindigkeiten, was in diesem Fall auch genau mit den Standard-Parametrisierungen für solche Bewegungen übereinstimmt, was die Beschreibung vermutlich generell einfacher macht. (Je nachdem, was Du da sonst noch machen möchtest.)


Generell kann man natürlich auch versuchen, es sich einfach zu machen ohne große Uminterpretationen und "einfach" einen Master-Regler machen (oder einen der vorhandenen dazu bestimmen), der basierend auf den Regler-Einstellungen mittels Skript die Werte der anderen Regler setzt. Der Master-Regler ist dann auch der einzige, für den die Animation eingeschaltet ist. Im Anhang hab ich mal Deine Datei um so einen Master-Regler erweitert, dessen OnUpdate-Skript einfach die Werte für b_{1} und n setzt. (Hab es mir da einfach gemacht, man könnte da natürlich auch mit zusätzlichen Variablen noch die Anfangswerte festlegen und sowas.) Man muss dabei "nur" drauf schauen, was die anderen Regler für Einstellungen haben (Min, Max, Schrittweite, Geschwindigkeit), denn das alles beeinflusst die Umrechnung der Werte des Master-Reglers auf die anderen Werte, da das Gesamtverhalten ja gleich bleiben soll. (Im Beispiel hatten die Regler ja unterschiedliche Geschwindigkeiten, was das Umrechnen etwas lästig gestaltet hat.) Das große Problem ist dann, dass man das Skript immer lästig anpassen muss, wenn man die Min, Max, Schrittweite, Geschwindigkeit einzelner Regler ändern will. Das halte ich alles für wesentlich unangenehmer als das Grundkonzept so zu ändern, dass man mit gut vorstellbaren Größen und standardisierten Einstellungsmöglichkeiten arbeiten kann.


Ach ja, anfangs dachte ich übrigens, dass es eine sehr einache Lösung gibt, indem z.B. der Masterregler einfach per Skript die Animation der anderen Regler einschaltet (z.B. ganz banal StartAnimation(n, true) im Update-Skript des Master-Reglers). Für die Animation innerhalb von Geogebra funktioniert das auch, aber beim Export in GIF hat das leider keine Auswirkungen.

photo
1

Bravo, einen herzlichen Dank für deine Bemühungen und deine sehr guten ausführlichen Beschreibungen!

Um dazuzulernen möchte ich deine beispielhaft gute Arbeit noch Schritt für Schritt durcharbeiten, anschließend werde ich sie mir als Muster gut aufheben. Vielleicht darf ich dich noch um eine Rat ersuchen, z. B. wie man die Formel für die Ellipse zusammenstellt bzw. wo man solche Formeln (Formelsammlung) findet ...

photo
1

Eine Standard-Parametrisierung für einen Kreisbogen mit Radius r um den Ursprung: x=r cos(t), y=r sin(t), wobei das t der Laufparameter ist. Wenn t ein ganzes Intervall der Länge durchläuft, dann ergibt sich ein voller Kreis, der außerdem - wenn man das t als Zeit interpretiert - in konstanter Geschwindigkeit durchlaufen wird (weswegen diese Art Parametrisierungen auch super in der Physik geeignet sind, um Kreisbewegungen zu beschreiben). Dass das Ganze wirklich einen Kreis ergibt, kann man sich z.B. aus dem Satz des Pythagoras (sin^2(t)+cos^2(t) = 1) herleiten. Änderung in Geschwindigkeit oder Startwinkel lassen sich leicht einbringen, indem man sin(t) und cos(t) durch sin(a t + b) und cos(a t + b) ersetzt, wobei a der Geschwindigkeitsfaktor und b der Startwinkel ist.

Ob und wo man das in einer Formelsammlung findet, hängt von der Formelsammlung ab. Falls die Formelsammlung nicht extrem stark auf Schulwissen eingeschränkt ist, sollte sich da was in einem Kapitel zu Kreisen finden, oder vlt. in einem Kapitel zu "Polarkoordinaten", die auf der gleichen Transformation beruhen. Wikipedia hat auch Infos dazu. Falls generell wenig Vorwissen zu Parametrisierungen vorhanden ist, schau vlt. mal hier.

Abgesehen von dieser Kreisparametrisierung wird in der Geogebra-Datei weiter auch nichts kompliziertes genutzt. Der Rest ist nur Vektor-Addition. Der Mittelpunkt des kleinen Kreises bewegt sich auf einer Kreisbahn, die man parametrisiert beschreibt, und die Parametrisierung des Punktes P ergibt sich, indem man zu der Parametrisierung des Mittelpunktes einfach nochmal eine Kreis-Parametrisierung mit dem anderen Radius dazu addiert. Eine Ellipse ergibt sich dabei auch nur, wenn die Umlaufgeschwindigkeiten Gegenzahlen sind, also wenn die Rotationgeschwindigkeit von P in dem kleinen Kreis genauso groß ist wie die des Kreismittelpunktes um den Ursprung, nur in entgegensetzter Richtung. In diesem Fall ergibt nämlich die Summe der Keisparametrisierungen genau eine Ellipsenparamentrisierung. (Wenn beide Startwinkel 0 sind, sieht man das rechnerisch sogar sofort, dann kommt direkt die Standardparametrisierung einer achsenparallelen Ellipse heraus: x = a cos(t), y = b sin(t), wobei a und b die Halbachsen sind.)

Ich weiß jetzt nicht, wieviel Vorwissen zu diesen Themen überhaupt vorhanden ist, aber ich hoffe ein paar Startpunkte gegeben zu haben, um sich das fehlende Wissen anzueignen.

photo
1

Nun, das ist schon mal ein guter Grundstock der mir sicherlich weiterhilft, danke!

Inzwischen ist - dank deiner guten Vorarbeit - die Konstruktion der Epizykloide mit deren Hilfe eine Ellipse konstruiert werden kann, fast fertig. Ich melde mich dann nochmals ...

photo
1

Du kannst dir die Konstruktion ansehen...

photo
© 2023 International GeoGebra Institute