Android материал L интерполятор перехода изображений

Это скорее вопрос математики, чем программирования.

Ну, я хотел бы спросить, знаете ли вы, что такое интерполятор, описанный в Материальном дизайне:

Это выглядит какAccelerateDecelerateInterpolator но эффект замедления затухает медленнее.

Мой лучший люк это:

public class MaterialInterpolator implements Interpolator {

    @Override
    public float getInterpolation(float input) {
        if(input<1./3f)
            return new AccelerateInterpolator().getInterpolation(input);
        else
            return new DecelerateInterpolator().getInterpolation(input);
    }

}

Что создает разрыв между значениями:

Time / Value
...
0.3,0.09
0.317,0.100489
0.333,0.110889  <-- gap
0.35,0.57750005
0.367,0.599311
0.383,0.61931103
0.4,0.64
...

Замедление AccelerateDecelerateInterpolator:

output = accelerateDecelerateInterpolator(decelerateInterpolator(input));

private float accelerateDecelerateInterpolator(float input) {
    return (float)(Math.cos((input + 1) * Math.PI) / 2.0f) + 0.5f;
}

private float decelerateInterpolator(float input) {
    //  return 1.0f - (1.0f - input) * (1.0f - input);
    return  (float)(1.0f - Math.pow((1.0f - input), 2 * mFactor));  // default factor =1.f
}

Дает ставки, похожие на:

И кривая значения / времени:

не уверен, есть ли в начале ошибка на выходе или реальное поведение должна быть ошибка вывода

Источник:http://www.google.com/design/spec/patterns/imagery-treatment.html

Ответы на вопрос(4)

Ваш ответ на вопрос