2012-02-22 3 views
1

UIImageViewを特定の大きな幅と高さから既知の小さい幅と高さに所定のステップ数(例えば10ステップまたは20ステップ)でアニメーション化する必要があります。CGAffineTransformscaleを使用していますが、am個々のダウンスケールが起こるべきステップをどのように計算するかを理解することはできません。あなたが私と共有できる数式はありますか?事前にサイズがわかっているときのCGAffineTransformscaleの式

おかげで、最後に

答えて

0

、対数のための実用化。

log(X^Y) = log(X) * Y 

ので

log(X) = log(X^Y)/Y 

だからこの場合

X = exp(log(X^Y)/Y) 

は、Xは、各ステップで作成する規模であることを覚えておいてください。 Yは歩数です。 X^Yは、あなたが作りたいと思っている合計スケールです。例えば、

Steps = 10; 
TotalScale = 0.5; 
ScaleEachTime = exp(log(TotalScale)/Steps); 

   = exp(log(0.5)/10) 
       = exp(-0.693.../10) 
       = exp(-0.0693...) 
       = 0.9330.... 

だから0.9330で10倍のスケーリング... 0.5

+0

の総規模を与える(私は例で四捨五入していますので...ドット)を与えますまず、実際にこれを説明するためにタイムアウトを取ってくれたことに、深く感謝します。私は急いでこれを忘れることはないと確信しています! :-)これは絶対にうまくいった!!!私は、ソースとデスティネーションの画像の長さと幅の差に基づいて合計スケールを計算し、その式を適用しました! – inforeqd