Влиять на линейный процентный расчет, чтобы быстрее расти в начале? - PullRequest
1 голос
/ 19 сентября 2011

Я делаю очень простое вычисление процента прогресса, на данный момент это линейное вычисление, так:

0 -> 0%
max/10 -> 10%
max -> 100%

Вычисление просто так:

$max = 4000;
$current = 1450;
$percent = ceil($current/$max*100);

Easy as.

но мне нужно, чтобы он выглядел так, как будто индикатор прогресса увеличивается быстрее в начале, в основном ускоряя начальный визуальный прогресс.

Я действительно должен это знать, но мой мозг не находит старые математические данные (я виню слишком много кофе).

Я думаю, это своего рода смягчение, которое я ищу;Как я могу изменить эту - очень простую - формулу, чтобы по-другому влиять на кривую прогрессии?

Примечание. Очевидно, что это php, но это должно быть одинаково на любом языке.

Ответы [ 2 ]

3 голосов
/ 19 сентября 2011

Вы можете использовать квадратичную настройку с небольшим параметром ($sf).Это так же, как у вас для $sf=0.Однако вы можете настроить $ sf, чтобы получить желаемое поведение.

$sf=0.2;
$p = $current/$max;
$percent = ceil($p + $sf * ($p *(1-$p) )) * 100);
0 голосов
/ 19 сентября 2011

Одна такая кривая - синус.

<?php

$k = 3.1415/2;

$max = 100;

print sin(0 / $max * $k) . "\n";
print sin(50 / $max * $k) . "\n";
print sin(100 / $max * $k) . "\n";

?>

Это печатает:

0
0.70709040200144
0.99999999892691
...