CGAffineTransformscale формула, когда размер известен - PullRequest
1 голос
/ 22 февраля 2012

Мне нужно анимировать UIImageView от определенной большой ширины и высоты до известной меньшей ширины и высоты за заданное количество шагов времени, например, 10 шагов или 20. Я использую CGAffineTransformscale, но не могу понять, как это сделать. вычислить шаги, по которым должны происходить отдельные сокращения. Есть ли формула, которой вы можете поделиться со мной?

Заранее спасибо,

1 Ответ

0 голосов
/ 23 февраля 2012

Наконец, практическое использование для логарифмов.

Помните, что

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

So

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

So

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....

Таким образом, масштабирование в 10 раз по 0,9330 ... дает общую шкалу 0,5

...