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

Jeżeli jesteś za filtrem sieci web, prosimy, upewnij się, że domeny *.kastatic.org i *.kasandbox.org są odblokowane.

Główna zawartość

Oscylacja z określoną prędkością kątową

Zrozumienie pojęć oscylacji, amplitudy i częstotliwości/okresu jest dosyć istotne w trakcie kursu na temat symulacji zachowań ze świata rzeczywistego. Istnieje jednak łatwiejszy sposób na przepisanie powyższego przykładu z takim samym wynikiem. Przyjrzyjmy się jeszcze raz naszemu wzorowi na oscylację:
var x = amplitude * sin(TWO_PI * frameCount / period);
I przepiszmy go w trochę inny sposób:
var x = amplitude * sin(pewna wartość, która zwiększa się powoli);
W przypadku, gdy zależy nam na definicji okresu oscylacji w terminach animowanych klatek, możemy rzeczywiście użyć wzoru w postaci takiej, w jakiej zapisaliśmy go po raz pierwszy. Możemy także przepisać go wykorzystując pojęcie prędkości kątowej (i przyspieszenia kątowego), o których możesz przeczytać w lekcjach o prędkości kątowej. Zakładając, że:
var angle = 0;
var aVelocity = 0,03;
...w draw() możemy po prostu zapisać:
angle += aVelocity;
var x = amplitude * sin(angle);
...gdzie angle to nasza “pewna wartość rosnąca powoli.”
Oto nasz zmodyfikowana program:
Tylko dlatego, że nie odnosimy się do okresu bezpośrednio, nie oznacza, że go wyeliminowaliśmy. W końcu im większa prędkość kątowa, tym szybciej koło będzie oscylować (jednocześnie zmniejszając swój okres). W rzeczywistości, okres opisuje ile czasu zajmie przy danej prędkości kątowej obrót o wartość TWO_PI albo:
okres = TWO_PI / prędkość kątowa
Rozszerzmy trochę ten przykład i stwórzmy obiekt Oscillator. Załóżmy, że chcemy, aby oscylacje odbywały się zarówno wzdłuż osi x (jak wyżej) jak i osi y. Aby to osiągnąć, potrzebujemy dwóch kątów, dwóch prędkości kątowych i dwóch amplitud (osobnej dla każdej osi). Brzmi jak kolejna doskonała okazja do użycia PVector!
Zapoznajcie się z kodem w poniższym programie:

Ten kurs "Symulacje Natury" jest pochodną z "Natury Kodu " stworzonej przez Daniela Shiffmana, użytej pod licencją Creative Commons Attribution-NonCommercial 3.0 Unported License.

Chcesz dołączyć do dyskusji?

Na razie brak głosów w dyskusji
Rozumiesz angielski? Kliknij tutaj, aby zobaczyć więcej dyskusji na angielskiej wersji strony Khan Academy.