Hauptinhalt
Kurs: Programmierung > Lerneinheit 5
Lektion 7: Schwingungen- Schwingungen: Amplitude und Periode
- Challenge: Regenbogen-Sprungfeder
- Schwingung mit Winkelgeschwindigkeit
- Challenge: Flug mit dem Raumschiff
- Wellen
- Challenge: Stürmische See
- Trigonometrie und Kräfte: Das Pendel
- Challenge: Pendelpuppe
- Federkräfte
- Projekt: Kriechende und krabbelnde Kreaturen
© 2024 Khan AcademyNutzungsbedingungenDatenschutzerklärungCookie-Meldung
Schwingung mit Winkelgeschwindigkeit
Wenn man Verhaltensweisen aus der realen Welt simuliert, benötigt man häufig ein Verständnis der Konzepte Oszillation, Amplitude und Frequenz/Periode. Allerdings gibt es eine etwas einfachere Art, das Beispiel von oben mit dem gleichen Ergebnis darzustellen. Schauen wir uns unsere Formel für die Oszillation noch mal an:
var x = amplitude * sin(TWO_PI * frameCount / period);
Wir schreiben sie nun etwas anders:
var x = amplitude * sin(ein beliebiger Wert der langsam inkrementiert);
Wenn wir die Periode für die Oszillation wirklich genau in animierten Frames definieren wollten, müssten wir wohl die erste Formel verwenden. Wir können aber genauso einfach unser Beispiel mithilfe des Konzepts der Winkelgeschwindigkeit (und -beschleunigung) aus dem Kapitel zur Winkelbewegung umschreiben. Nehmen wir an:
var angle = 0;
var aVelocity = 0{,}03;
...in
draw()
können wir einfach schreiben:angle += aVelocity;
var x = amplitude * sin(angle);
...wobei
angle
unser “ein beliebiger Wert der langsam inkrementiert” erfüllt.Hier ist unser geändertes Programm:
Nur weil wir uns nicht direkt darauf beziehen, heißt das noch lange nicht, dass wir das Konzept der Periode überhaupt nicht mehr nutzen. Immerhin oszilliert der Kreis schneller (also mit einer immer niedrigeren Periode), umso größer die Winkelgeschwindigkeit wird. Tatsächlich sagt die Periode aus, wie oft wir die Winkelgeschwindigkeit aufsummieren müssen, bis wir
TWO_PI
erreicht haben. Oder auch:Periode = TWO_PI / Winkelgeschwindigkeit
Erweitern wir dieses Beispiel noch ein wenig und legen ein Objekt
Oscillator
an. Nehmen wir an, wir wollen eine Oszillation sowohl entlang der x-Achse (wie oben) also auch entlang der y-Achse. Dafür brauchen wir zwei Winkel, zwei Winkelgeschwindigkeiten, und zwei Amplituden (eine für jede Achse). Eine weitere Einsatzmöglichkeit für PVector
!Lies dir den Code im folgenden Programm durch:
Der Kurs "Natürliche Simulationen" ist eine Bearbeitung von "The Nature of Code" von Daniel Shiffman, und wird unter der Creative Commons Attribution-NonCommercial 3,0 Unported Lizenz verwendet.
Willst du an der Diskussion teilnehmen?
Noch keine Beiträge.