当大小已知时,CGAffineTransformscale公式

时间:2012-02-22 02:35:02

标签: scale cgaffinetransform

我必须在给定的时间步长(例如10步或20)中将UIImageView从某个较大的宽度和高度设置为已知的较小宽度和高度。我正在使用CGAffineTransformscale,但我无法知道如何计算单个缩减应该发生的步骤。有没有可以与我分享的公式?

提前致谢,

1 个答案:

答案 0 :(得分: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....

因此缩放10次0.9330 ...总得分为0.5