Klatki kluczowe i interpolacja
Animacja w programie: ruch obiektów na planszy - Informatyka - liceum klasa 2, zakres rozszerzony (Python)
W animacji komputerowej nie rysuje się każdej klatki. Animator ustawia **klatki kluczowe** (ang. *keyframes*): w klatce 0 auto stoi z lewej, w klatce 60 z prawej. Klatki pośrednie program liczy sam, czyli **interpoluje**. Najprostsza jest **interpolacja liniowa**: `t` to postęp od 0 do 1, a wartość to `a + (b - a) · t`. Przy 30 klatkach na sekundę ruch z klatki 0 do 60 trwa 2 sekundy. Funkcja `value_at` znajduje dwie klatki kluczowe otaczające bieżącą klatkę i interpoluje między nimi.
def lerp(a, b, t):
return a + (b - a) * t
def value_at(frame, keys):
for (f1, v1), (f2, v2) in zip(keys, keys[1:]):
if f1 <= frame <= f2:
return lerp(v1, v2, (frame - f1) / (f2 - f1))
return keys[-1][1]
keys = [(0, -80), (60, 80)]
for frame in range(0, 61, 10):
print("klatka", frame, "x =", value_at(frame, keys))Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.
Wszystkie lekcje kursu Informatyka - liceum klasa 2, zakres rozszerzony·Zaloguj się, aby zapisać postęp na koncie.