影格取樣與編碼
固定影格率的取樣時間
動畫長度 \(D\)、整數影格率 \(f\) 時,FixedFPS 選擇
\[
N = \max(2, \left\lfloor D f + 1 / 2 \right\rfloor)
\]
個影格,並包含兩端:
\[
t_i = D i / (N - 1), \quad i = 0, ..., N - 1.
\]
最後一個時間直接指定為 \(D\),不累積浮點誤差。
自行指定取樣時間
依指定的整數影格率,產生等距且包含首末端點的取樣時間。
Timestamps(stamps)
驗證並保存動畫範圍內不遞減的自訂取樣時間。
Frame(index, time, progress, snapshot)
一個取樣後的場景,以及對應的時間、持續時間與影格編號。
GIF 的百分之一秒
GIF 以百分之一秒儲存延遲。影格率為 \(f\) 時,KineticKit 由累積邊界分配整數延遲:
\[
d_i = round((i + 1) 100 / f) - round(i 100 / f).
\]
當 \(100 / f\) 不是整數時,相鄰延遲會交替,但總漂移有界;逐影格各自四捨五入做不到這點。
串流輸出與可重現性
GIF 寫入器每次只量化並寫出一個影格,因此記憶體不隨片長增加。SVG 保存解析式動作;HTML 保存場景、時間軸、控制項與無障礙資料。每個匯出器都會回傳輸出清單,說明格式、尺寸、長度、影格數與替代內容。
端點一致性
命題 · 端點一致性
所有含端點的排程器,其首末場景都分別等於 Animation.sample(0) 與 Animation.sample(D)。