Наконец, практическое использование для логарифмов.
Помните, что
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