JavaScriptで一定時間で一定の拡大縮小したいときの単位時間当たりの倍率を自分メモしておくとか〜

canvasでアニメーションを作ろうと思っていてはまったのですが・・・
記事はこちら→canvasでアニメーションを作ってみた(未完成)とか〜 - w7工廠
setTransformに送る一定倍率の出し方がわかりませんでした。
ようやくわかったので自分メモとして。
要はw0=2をdt=4回描画してsx=30倍(w4=60)にしたい場合。
描画間隔ごとの倍率をdsxとすると

dsx=Math.pow(sx,1/dt);// =Math.pow(30,1/4)=約2.34

w0=2→2.34倍(1回目)
w1=4.68→2.34倍(2回目)
w2=10.95→2.34倍(3回目)
w3=25.62→2.34倍(4回目)
w4=59.96(約60)


今まではどう計算していたかというと
w0*sx=w+xw(xwはwの増分)、これよりxw=w(sx-1)
dw=xw/dt=(dwはdtごとのwの増分)
dsx=(w+dw)/w=1+(sx-1)/dt
という式でやっていました(汗)
これだと倍率が大きいとおかしくなります。
原因はdtごとのwを固定したことにありました。
その場合はdsxは変動してしまうんですね・・・


学生の頃に数学ができたのと、こうやって応用が利くかどうかって別なんですね(汗)