Я думаю, что для пользователя будет лучше, если вы предоставите экспоненциальную подгонку.
В Javascript есть Math.pow (a, b), который вычисляет b .
Параметр имеет больше смысла, если вы отображаете диапазон от [0,100] до [25%, 400%], потому что тогда 50 находится в точной средней точке и его можно легко отобразить на 100%. 50 точек на ползунке соответствуют делению или умножению на четыре, поэтому вы можете установить
scaling = Math.pow(2,(slider - 50) / 25);
Итак, вы получите отображение ниже:
slider scaling
------------------
0 2**-2 = 1/4 = 25%
25 2**-1 = 1/2 = 50%
50 2**0 = 1 = 100%
75 2**1 = 2 = 200%
100 2**2 = 4 = 400%
Теперь я вижу, что это не дает полного ответа на ваш вопрос, потому что ваша шкала равна [1100] вместо [0,100], и вы хотите достичь 500% вместо 400%.
Чтобы попасть туда, вы можете сначала нормализовать ползунок:
slider_n = (slider - 1) * (100/99);
(это сопоставляет [1100] с [0,100]), а затем, если хотите, умножьте положительные значения показателя степени на (log 5) / (log 4), чтобы ваш масштаб заканчивался 500%, то есть
exp = (slider_n - 50) / 25.0;
if (exp > 0) exp = exp * Math.log(5)/Math.log(4);
scaling = Math.pow(2,exp);