Klatki kluczowe i interpolacja

Animacja komputerowa: klatki kluczowe i formaty plików - Informatyka - liceum klasa 3 (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 3·Zaloguj się, aby zapisać postęp na koncie.