Class CubicBezierEasing

    • Constructor Detail

      • CubicBezierEasing

        public CubicBezierEasing​(float x1,
                                 float y1,
                                 float x2,
                                 float y2)
        Creates a cubic bezier easing interpolator with the given control points. The start point of the cubic bezier curve is always 0,0 and the end point 1,1.
        Parameters:
        x1 - the x coordinate of the first control point in range [0, 1]
        y1 - the y coordinate of the first control point in range [0, 1]
        x2 - the x coordinate of the second control point in range [0, 1]
        y2 - the y coordinate of the second control point in range [0, 1]
    • Method Detail

      • interpolate

        public float interpolate​(float fraction)
        Description copied from interface: Animator.Interpolator
        Interpolate the given fraction and returns a new fraction. Both fractions are in range [0, 1].
        Specified by:
        interpolate in interface Animator.Interpolator
        Parameters:
        fraction - the percent (0 to 1) elapsed of the current animation cycle
        Returns:
        new fraction in range [0, 1]
      • cubicBezier

        private static float cubicBezier​(float t,
                                         float xy1,
                                         float xy2)
        Computes the x or y point on a cubic bezier curve for a given t value. https://en.wikipedia.org/wiki/B%C3%A9zier_curve#Cubic_B%C3%A9zier_curves The general cubic bezier formula is: x = b0*x0 + b1*x1 + b2*x2 + b3*x3 y = b0*y0 + b1*y1 + b2*y2 + b3*y3 where: b0 = (1-t)^3 b1 = 3 * t * (1-t)^2 b2 = 3 * t^2 * (1-t) b3 = t^3 x0,y0 is always 0,0 and x3,y3 is 1,1, so we can simplify to: x = b1*x1 + b2*x2 + b3 y = b1*x1 + b2*x2 + b3