@Override
    public PointF evaluate(float fraction, PointF startValue, PointF endValue) {
        float x = startValue.x + (fraction * (endValue.x - startValue.x));
        float y = startValue.y + (fraction * (endValue.y - startValue.y));

        if (mPoint != null) {
            mPoint.set(x, y);
            return mPoint;
        } else {
            return new PointF(x, y);
        }
    }
This function returns the result of linearly interpolating the start and
end PointF values, with <code>fraction</code> representing the proportion
between the start and end values. The calculation is a simple parametric
calculation on each of the separate components in the PointF objects
(x, y).

<p>If {@link #PointFEvaluator(android.graphics.PointF)} was used to construct
this PointFEvaluator, the object returned will be the <code>reuse</code>
passed into the constructor.</p>

@param fraction   The fraction from the starting to the ending values
@param startValue The start PointF
@param endValue   The end PointF
@return A linear interpolation between the start and end values, given the
        <code>fraction</code> parameter.
app/src/main/java/home/smart/fly/animations/customview/canvas/PointFEvaluator.java