If you're seeing this message, it means we're having trouble loading external resources on our website.

Wenn du hinter einem Webfilter bist, stelle sicher, dass die Domänen *. kastatic.org und *. kasandbox.org nicht blockiert sind.

Hauptinhalt

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.
Verstehst du Englisch? Klick hier, um weitere Diskussionen auf der englischen Khan Academy Seite zu sehen.