Scratch 模組庫

補間

使用補間/插值實現平滑動畫。

動畫 補間

貢獻者: LuYifei2011

腳本

線性

定義 線性 從 (起始值 :: custom-arg) 到 (結束值 :: custom-arg) 進度 (進度 :: custom-arg) %
變數 [補間 v] 設為 ((進度 :: custom-arg) / (100))
變數 [補間 v] 設為 (((補間) * ((結束值 :: custom-arg) - (起始值 :: custom-arg))) + (起始值 :: custom-arg))

正弦

定義 正弦 緩入 從 (起始值 :: custom-arg) 到 (結束值 :: custom-arg) 進度 (進度 :: custom-arg) %
變數 [補間 v] 設為 ((進度 :: custom-arg) / (100))
變數 [補間 v] 設為 ((1) - ([cos v] 數值 ((補間) * (90))))
變數 [補間 v] 設為 (((補間) * ((結束值 :: custom-arg) - (起始值 :: custom-arg))) + (起始值 :: custom-arg))

定義 正弦 緩出 從 (起始值 :: custom-arg) 到 (結束值 :: custom-arg) 進度 (進度 :: custom-arg) %
變數 [補間 v] 設為 ((進度 :: custom-arg) / (100))
變數 [補間 v] 設為 ([sin v] 數值 ((補間) * (90)))
變數 [補間 v] 設為 (((補間) * ((結束值 :: custom-arg) - (起始值 :: custom-arg))) + (起始值 :: custom-arg))

定義 正弦 緩入緩出 從 (起始值 :: custom-arg) 到 (結束值 :: custom-arg) 進度 (進度 :: custom-arg) %
變數 [補間 v] 設為 ((進度 :: custom-arg) / (100))
變數 [補間 v] 設為 (() - ((([cos v] 數值 ((補間) * (180))) - (1)) / (2)))
變數 [補間 v] 設為 (((補間) * ((結束值 :: custom-arg) - (起始值 :: custom-arg))) + (起始值 :: custom-arg))

次方

// You can change exponent: square / cubic / quartic / quintic

定義 二次 緩入 從 (起始值 :: custom-arg) 到 (結束值 :: custom-arg) 進度 (進度 :: custom-arg) %
變數 [補間 v] 設為 ((進度 :: custom-arg) / (100))
變數 [補間 v] 設為 ((補間) * (補間)) // cubic: multiply again; quartic/quintic: and so on
變數 [補間 v] 設為 (((補間) * ((結束值 :: custom-arg) - (起始值 :: custom-arg))) + (起始值 :: custom-arg))

定義 二次 緩出 從 (起始值 :: custom-arg) 到 (結束值 :: custom-arg) 進度 (進度 :: custom-arg) %
變數 [補間 v] 設為 ((進度 :: custom-arg) / (100))
變數 [補間 v] 設為 ((1) - (補間))
變數 [補間 v] 設為 ((補間) * (補間)) // cubic: multiply again
變數 [補間 v] 設為 ((1) - (補間))
變數 [補間 v] 設為 (((補間) * ((結束值 :: custom-arg) - (起始值 :: custom-arg))) + (起始值 :: custom-arg))

定義 二次 緩入緩出 從 (起始值 :: custom-arg) 到 (結束值 :: custom-arg) 進度 (進度 :: custom-arg) %
變數 [補間 v] 設為 ((進度 :: custom-arg) / (100))
如果 <(補間) < (0.5)> 那麼
  變數 [補間 v] 設為 ((2) * (補間))
  變數 [補間 v] 設為 ((補間) * (補間)) // cubic: multiply again
  變數 [補間 v] 設為 ((補間) / (2))
否則
  變數 [補間 v] 設為 (((-2) * (補間)) + (2))
  變數 [補間 v] 設為 ((補間) * (補間)) // cubic: multiply again
  變數 [補間 v] 設為 ((1) - ((補間) / (2)))
結束
變數 [補間 v] 設為 (((補間) * ((結束值 :: custom-arg) - (起始值 :: custom-arg))) + (起始值 :: custom-arg))

指數

引入模組 冪 (乘方) · 主腳本 (#1)
定義 (a :: custom-arg) ^ (b :: custom-arg)
變數 [a^b v] 設為 (1)
重複 (b :: custom-arg) 次
  變數 [a^b v] 設為 ((a^b) * (a :: custom-arg))
結束
定義 指數 緩入 從 (起始值 :: custom-arg) 到 (結束值 :: custom-arg) 進度 (進度 :: custom-arg) %
變數 [補間 v] 設為 ((進度 :: custom-arg) / (100))
如果 <(補間) = (0)> 那麼
  變數 [補間 v] 設為 (0)
否則
  (2) ^ (((10) * (補間)) - (10)) :: custom
  變數 [補間 v] 設為 (a^b)
結束
變數 [補間 v] 設為 (((補間) * ((結束值 :: custom-arg) - (起始值 :: custom-arg))) + (起始值 :: custom-arg))

定義 指數 緩出 從 (起始值 :: custom-arg) 到 (結束值 :: custom-arg) 進度 (進度 :: custom-arg) %
變數 [補間 v] 設為 ((進度 :: custom-arg) / (100))
如果 <(補間) = (1)> 那麼
  變數 [補間 v] 設為 (1)
否則
  (2) ^ ((-10) * (補間)) :: custom
  變數 [補間 v] 設為 ((1) - (a^b))
結束
變數 [補間 v] 設為 (((補間) * ((結束值 :: custom-arg) - (起始值 :: custom-arg))) + (起始值 :: custom-arg))

定義 指數 緩入緩出 從 (起始值 :: custom-arg) 到 (結束值 :: custom-arg) 進度 (進度 :: custom-arg) %
變數 [補間 v] 設為 ((進度 :: custom-arg) / (100))
如果 <(補間) = (0)> 那麼
  變數 [補間 v] 設為 (0)
否則
  如果 <(補間) = (1)> 那麼
    變數 [補間 v] 設為 (1)
  否則
    如果 <(補間) < (0.5)> 那麼
      (2) ^ (((20) * (補間)) - (10)) :: custom
      變數 [補間 v] 設為 ((a^b) / (2))
    否則
      (2) ^ (((-20) * (補間)) + (10)) :: custom
      變數 [補間 v] 設為 (((2) - (a^b)) / (2))
    結束
  結束
結束
變數 [補間 v] 設為 (((補間) * ((結束值 :: custom-arg) - (起始值 :: custom-arg))) + (起始值 :: custom-arg))

圓形

定義 圓形 緩入 從 (起始值 :: custom-arg) 到 (結束值 :: custom-arg) 進度 (進度 :: custom-arg) %
變數 [補間 v] 設為 ((進度 :: custom-arg) / (100))
變數 [補間 v] 設為 ((1) - ([平方根 v] 數值 ((1) - ((補間) * (補間)))))
變數 [補間 v] 設為 (((補間) * ((結束值 :: custom-arg) - (起始值 :: custom-arg))) + (起始值 :: custom-arg))

定義 圓形 緩出 從 (起始值 :: custom-arg) 到 (結束值 :: custom-arg) 進度 (進度 :: custom-arg) %
變數 [補間 v] 設為 ((進度 :: custom-arg) / (100))
變數 [補間 v] 設為 ([平方根 v] 數值 ((1) - (((補間) - (1)) * ((補間) - (1)))))
變數 [補間 v] 設為 (((補間) * ((結束值 :: custom-arg) - (起始值 :: custom-arg))) + (起始值 :: custom-arg))

定義 圓形 緩入緩出 從 (起始值 :: custom-arg) 到 (結束值 :: custom-arg) 進度 (進度 :: custom-arg) %
變數 [補間 v] 設為 ((進度 :: custom-arg) / (100))
如果 <(補間) < (0.5)> 那麼
  變數 [補間 v] 設為 ((2) * (補間))
  變數 [補間 v] 設為 ((1) - ([平方根 v] 數值 ((1) - ((補間) * (補間)))))
  變數 [補間 v] 設為 ((補間) / (2))
否則
  變數 [補間 v] 設為 (((-2) * (補間)) + (2))
  變數 [補間 v] 設為 ([平方根 v] 數值 ((1) - ((補間) * (補間))))
  變數 [補間 v] 設為 (((補間) + (1)) / (2))
結束
變數 [補間 v] 設為 (((補間) * ((結束值 :: custom-arg) - (起始值 :: custom-arg))) + (起始值 :: custom-arg))

回彈

定義 回彈 緩入 從 (起始值 :: custom-arg) 到 (結束值 :: custom-arg) 進度 (進度 :: custom-arg) %
變數 [補間 v] 設為 ((进度 :: custom-arg) / (100))
變數 [補間 v] 設為 ((1) - (補間))
如果 <(補間) < (0.363636)> 那麼
  變數 [補間 v] 設為 ((7.5625) * ((補間) * (補間)))
否則
  如果 <(補間) < (0.727272)> 那麼
    變數 [補間 v] 設為 (((7.5625) * (((補間) - (0.545454)) * ((補間) - (0.545454)))) + (0.75))
  否則
    如果 <(補間) < (0.90909)> 那麼
      變數 [補間 v] 設為 (((7.5625) * (((補間) - (0.818181)) * ((補間) - (0.818181)))) + (0.9375))
    否則
      變數 [補間 v] 設為 (((7.5625) * (((補間) - (0.954545)) * ((補間) - (0.954545)))) + (0.984375))
    結束
  結束
結束
變數 [補間 v] 設為 ((1) - (補間))
變數 [補間 v] 設為 (((補間) * ((結束值 :: custom-arg) - (起始值 :: custom-arg))) + (起始值 :: custom-arg))

定義 回彈 緩出 從 (起始值 :: custom-arg) 到 (結束值 :: custom-arg) 進度 (進度 :: custom-arg) %
變數 [補間 v] 設為 ((进度 :: custom-arg) / (100))
如果 <(補間) < (0.363636)> 那麼
  變數 [補間 v] 設為 ((7.5625) * ((補間) * (補間)))
否則
  如果 <(補間) < (0.727272)> 那麼
    變數 [補間 v] 設為 (((7.5625) * (((補間) - (0.545454)) * ((補間) - (0.545454)))) + (0.75))
  否則
    如果 <(補間) < (0.90909)> 那麼
      變數 [補間 v] 設為 (((7.5625) * (((補間) - (0.818181)) * ((補間) - (0.818181)))) + (0.9375))
    否則
      變數 [補間 v] 設為 (((7.5625) * (((補間) - (0.954545)) * ((補間) - (0.954545)))) + (0.984375))
    結束
  結束
結束
變數 [補間 v] 設為 (((補間) * ((結束值 :: custom-arg) - (起始值 :: custom-arg))) + (起始值 :: custom-arg))

定義 回彈 緩入緩出 從 (起始值 :: custom-arg) 到 (結束值 :: custom-arg) 進度 (進度 :: custom-arg) %
變數 [補間 v] 設為 ((进度 :: custom-arg) / (100))
如果 <(補間) < (0.5)> 那麼
  變數 [補間 v] 設為 ((補間) * (2))
  變數 [補間 v] 設為 ((補間) / (100))
  變數 [補間 v] 設為 ((補間) * (100))
  變數 [補間 v] 設為 ((補間) / (2))
否則
  變數 [補間 v] 設為 (((補間) * (2)) - (1))
  如果 <(補間) < (0.363636)> 那麼
    變數 [補間 v] 設為 ((7.5625) * ((補間) * (補間)))
  否則
    如果 <(補間) < (0.727272)> 那麼
      變數 [補間 v] 設為 (((7.5625) * (((補間) - (0.545454)) * ((補間) - (0.545454)))) + (0.75))
    否則
      如果 <(補間) < (0.90909)> 那麼
        變數 [補間 v] 設為 (((7.5625) * (((補間) - (0.818181)) * ((補間) - (0.818181)))) + (0.9375))
      否則
        變數 [補間 v] 設為 (((7.5625) * (((補間) - (0.954545)) * ((補間) - (0.954545)))) + (0.984375))
      結束
    結束
  結束
  變數 [補間 v] 設為 ((補間) / (2))
  變數 [補間 v] 設為 ((補間) + (0.5))
結束
變數 [補間 v] 設為 (((補間) * ((結束值 :: custom-arg) - (起始值 :: custom-arg))) + (起始值 :: custom-arg))

彈性

引入模組 冪 (乘方) · 主腳本 (#1)
定義 (a :: custom-arg) ^ (b :: custom-arg)
變數 [a^b v] 設為 (1)
重複 (b :: custom-arg) 次
  變數 [a^b v] 設為 ((a^b) * (a :: custom-arg))
結束
定義 彈性 緩入 從 (起始值 :: custom-arg) 到 (結束值 :: custom-arg) 進度 (進度 :: custom-arg) %
變數 [補間 v] 設為 ((進度 :: custom-arg) / (100))
如果 <(補間) = (0)> 那麼
  變數 [補間 v] 設為 (0)
否則
  如果 <(補間) = (1)> 那麼
    變數 [補間 v] 設為 (1)
  否則
    (2) ^ (((10) * (補間)) - (10)) :: custom
    變數 [補間 v] 設為 (() - ((a^b) * ([sin v] 數值 ((((補間) * (10)) - (10.75)) * (120)))))
  結束
結束
變數 [補間 v] 設為 (((補間) * ((結束值 :: custom-arg) - (起始值 :: custom-arg))) + (起始值 :: custom-arg))

定義 彈性 緩出 從 (起始值 :: custom-arg) 到 (結束值 :: custom-arg) 進度 (進度 :: custom-arg) %
變數 [補間 v] 設為 ((進度 :: custom-arg) / (100))
如果 <(補間) = (0)> 那麼
  變數 [補間 v] 設為 (0)
否則
  如果 <(補間) = (1)> 那麼
    變數 [補間 v] 設為 (1)
  否則
    (2) ^ ((-10) * (補間)) :: custom
    變數 [補間 v] 設為 (((a^b) * ([sin v] 數值 ((((補間) * (10)) - (0.75)) * (120)))) + (1))
  結束
結束
變數 [補間 v] 設為 (((補間) * ((結束值 :: custom-arg) - (起始值 :: custom-arg))) + (起始值 :: custom-arg))

定義 彈性 緩入緩出 從 (起始值 :: custom-arg) 到 (結束值 :: custom-arg) 進度 (進度 :: custom-arg) %
變數 [補間 v] 設為 ((進度 :: custom-arg) / (100))
如果 <(補間) = (0)> 那麼
  變數 [補間 v] 設為 (0)
否則
  如果 <(補間) = (1)> 那麼
    變數 [補間 v] 設為 (1)
  否則
    如果 <(補間) < (0.5)> 那麼
      (2) ^ (((20) * (補間)) - (10)) :: custom
      變數 [補間 v] 設為 ((() - ((a^b) * ([sin v] 數值 ((((補間) * (20)) - (11.125)) * (80))))) / (2))
    否則
      (2) ^ (((-20) * (補間)) + (10)) :: custom
      變數 [補間 v] 設為 ((((a^b) * ([sin v] 數值 ((((補間) * (20)) - (11.125)) * (80)))) / (2)) + (1))
    結束
  結束
結束
變數 [補間 v] 設為 (((補間) * ((結束值 :: custom-arg) - (起始值 :: custom-arg))) + (起始值 :: custom-arg))

彈跳

定義 彈跳 緩出 從 (起始值 :: custom-arg) 到 (結束值 :: custom-arg) 進度 (進度 :: custom-arg) %
變數 [補間 v] 設為 ((進度 :: custom-arg) / (100))
如果 <(補間) < (0.363636)> 那麼
  變數 [補間 v] 設為 ((7.5625) * ((補間) * (補間)))
否則
  如果 <(補間) < (0.727272)> 那麼
    變數 [補間 v] 設為 (((7.5625) * (((補間) - (0.545454)) * ((補間) - (0.545454)))) + (0.75))
  否則
    如果 <(補間) < (0.90909)> 那麼
      變數 [補間 v] 設為 (((7.5625) * (((補間) - (0.818181)) * ((補間) - (0.818181)))) + (0.9375))
    否則
      變數 [補間 v] 設為 (((7.5625) * (((補間) - (0.954545)) * ((補間) - (0.954545)))) + (0.984375))
    結束
  結束
結束
變數 [補間 v] 設為 (((補間) * ((結束值 :: custom-arg) - (起始值 :: custom-arg))) + (起始值 :: custom-arg))

定義 彈跳 緩入 從 (起始值 :: custom-arg) 到 (結束值 :: custom-arg) 進度 (進度 :: custom-arg) %
變數 [補間 v] 設為 ((進度 :: custom-arg) / (100))
變數 [補間 v] 設為 ((1) - (補間))
如果 <(補間) < (0.363636)> 那麼
  變數 [補間 v] 設為 ((7.5625) * ((補間) * (補間)))
否則
  如果 <(補間) < (0.727272)> 那麼
    變數 [補間 v] 設為 (((7.5625) * (((補間) - (0.545454)) * ((補間) - (0.545454)))) + (0.75))
  否則
    如果 <(補間) < (0.90909)> 那麼
      變數 [補間 v] 設為 (((7.5625) * (((補間) - (0.818181)) * ((補間) - (0.818181)))) + (0.9375))
    否則
      變數 [補間 v] 設為 (((7.5625) * (((補間) - (0.954545)) * ((補間) - (0.954545)))) + (0.984375))
    結束
  結束
結束
變數 [補間 v] 設為 ((1) - (補間))
變數 [補間 v] 設為 (((補間) * ((結束值 :: custom-arg) - (起始值 :: custom-arg))) + (起始值 :: custom-arg))

定義 彈跳 緩入緩出 從 (起始值 :: custom-arg) 到 (結束值 :: custom-arg) 進度 (進度 :: custom-arg) %
變數 [補間 v] 設為 ((進度 :: custom-arg) / (100))
如果 <(補間) < (0.5)> 那麼
  變數 [補間 v] 設為 ((補間) * (2))
  變數 [補間 v] 設為 ((1) - (補間))
  如果 <(補間) < (0.363636)> 那麼
    變數 [補間 v] 設為 ((7.5625) * ((補間) * (補間)))
  否則
    如果 <(補間) < (0.727272)> 那麼
      變數 [補間 v] 設為 (((7.5625) * (((補間) - (0.545454)) * ((補間) - (0.545454)))) + (0.75))
    否則
      如果 <(補間) < (0.90909)> 那麼
        變數 [補間 v] 設為 (((7.5625) * (((補間) - (0.818181)) * ((補間) - (0.818181)))) + (0.9375))
      否則
        變數 [補間 v] 設為 (((7.5625) * (((補間) - (0.954545)) * ((補間) - (0.954545)))) + (0.984375))
      結束
    結束
  結束
  變數 [補間 v] 設為 ((1) - (補間))
  變數 [補間 v] 設為 ((補間) / (2))
否則
  變數 [補間 v] 設為 (((補間) * (2)) - (1))
  如果 <(補間) < (0.363636)> 那麼
    變數 [補間 v] 設為 ((7.5625) * ((補間) * (補間)))
  否則
    如果 <(補間) < (0.727272)> 那麼
      變數 [補間 v] 設為 (((7.5625) * (((補間) - (0.545454)) * ((補間) - (0.545454)))) + (0.75))
    否則
      如果 <(補間) < (0.90909)> 那麼
        變數 [補間 v] 設為 (((7.5625) * (((補間) - (0.818181)) * ((補間) - (0.818181)))) + (0.9375))
      否則
        變數 [補間 v] 設為 (((7.5625) * (((補間) - (0.954545)) * ((補間) - (0.954545)))) + (0.984375))
      結束
    結束
  結束
  變數 [補間 v] 設為 (((補間) + (1)) / (2))
結束
變數 [補間 v] 設為 (((補間) * ((結束值 :: custom-arg) - (起始值 :: custom-arg))) + (起始值 :: custom-arg))

變數 / 清單

名稱類型作用域
補間變數角色

參考連結