А вот другой вариант.
private static float test(float from, float to, float max) {
float delta = to-from;
if( delta < -max ) delta = -max;
if( delta > max ) delta = max;
return from + delta;
}
float current = 0;
float to = 50;
for (int i = 0; i < 15; i++) {
current = test( current, to, 5 );
System.out.println( current );
}
Результат равномерный.
5.0
10.0
15.0
20.0
25.0
30.0
35.0
40.0
45.0
50.0
50.0
50.0
50.0
50.0
50.0
Для вектора такое легко сделать, а вот если бы для кватерниона, то было бы класс.