 java.lang.Object

 javafx.animation.Interpolator

public abstract class Interpolator extends Object
The abstract class defines severalinterpolate
methods, which are used to calculate interpolated values. Various builtin implementations of this class are offered. Applications may choose to implement their ownInterpolator
to get custom interpolation behavior.A custom
Interpolator
has to be defined in terms of a "curve()
". Since:
 JavaFX 2.0


Field Summary
Fields Modifier and Type Field Description static Interpolator
DISCRETE
Builtin interpolator that provides discrete time interpolation.static Interpolator
EASE_BOTH
Builtin interpolator instance that provides ease in/out behavior.static Interpolator
EASE_IN
Builtin interpolator instance that provides ease in behavior.static Interpolator
EASE_OUT
Builtin interpolator instance that provides ease out behavior.static Interpolator
LINEAR
Builtin interpolator that provides linear time interpolation.

Constructor Summary
Constructors Modifier Constructor Description protected
Interpolator()
The constructor ofInterpolator
.

Method Summary
Modifier and Type Method Description protected abstract double
curve(double t)
Mapping from [0.0..1.0] to itself.boolean
interpolate(boolean startValue, boolean endValue, double fraction)
This method takes twoboolean
values along with afraction
between0.0
and1.0
and returns the interpolated value.double
interpolate(double startValue, double endValue, double fraction)
This method takes twodouble
values along with afraction
between0.0
and1.0
and returns the interpolated value.int
interpolate(int startValue, int endValue, double fraction)
This method takes twoint
values along with afraction
between0.0
and1.0
and returns the interpolated value.long
interpolate(long startValue, long endValue, double fraction)
This method takes twoint
values along with afraction
between0.0
and1.0
and returns the interpolated value.Object
interpolate(Object startValue, Object endValue, double fraction)
This method takes twoObjects
along with afraction
between0.0
and1.0
and returns the interpolated value.static Interpolator
SPLINE(double x1, double y1, double x2, double y2)
Creates anInterpolator
, whichcurve()
is shaped using the spline control points defined by (x1
,y1
) and (x2
,y2
).static Interpolator
TANGENT(Duration t, double v)
Creates a tangent interpolator, for which intangent and outtangent are identical.static Interpolator
TANGENT(Duration t1, double v1, Duration t2, double v2)
Create a tangent interpolator.



Field Detail

DISCRETE
public static final Interpolator DISCRETE
Builtin interpolator that provides discrete time interpolation. The return value ofinterpolate()
isendValue
only when the inputfraction
is 1.0, andstartValue
otherwise.

LINEAR
public static final Interpolator LINEAR
Builtin interpolator that provides linear time interpolation. The return value ofinterpolate()
isstartValue
+ (endValue
startValue
) *fraction
.

EASE_BOTH
public static final Interpolator EASE_BOTH
Builtin interpolator instance that provides ease in/out behavior.An easeboth interpolator will make an animation start slow, then accelerate and slow down again towards the end, all in a smooth manner.
The implementation uses the algorithm for easing defined in SMIL 3.0 with an acceleration and deceleration factor of 0.2, respectively.

EASE_IN
public static final Interpolator EASE_IN
Builtin interpolator instance that provides ease in behavior.An easein interpolator will make an animation start slow and then accelerate smoothly.
The implementation uses the algorithm for easing defined in SMIL 3.0 with an acceleration factor of 0.2.

EASE_OUT
public static final Interpolator EASE_OUT
Builtin interpolator instance that provides ease out behavior.An easeout interpolator will make an animation slow down toward the end smoothly.
The implementation uses the algorithm for easing defined in SMIL 3.0 with an deceleration factor of 0.2.


Method Detail

SPLINE
public static Interpolator SPLINE(double x1, double y1, double x2, double y2)
Creates anInterpolator
, whichcurve()
is shaped using the spline control points defined by (x1
,y1
) and (x2
,y2
). The anchor points of the spline are implicitly defined as (0.0
,0.0
) and (1.0
,1.0
). Parameters:
x1
 x coordinate of the first control pointy1
 y coordinate of the first control pointx2
 x coordinate of the second control pointy2
 y coordinate of the second control point Returns:
 A spline interpolator

TANGENT
public static Interpolator TANGENT(Duration t1, double v1, Duration t2, double v2)
Create a tangent interpolator. A tangent interpolator allows to define the behavior of an animation curve very precisely by defining the tangents close to a key frame. A tangent interpolator defines the behavior to the left and to the right of a key frame, therefore it is only useful within aTimeline
. If used in aKeyFrame
after a KeyFrame that has different interpolator, it's treated as if the outtangent of that KeyFrame was equal to the value in the KeyFrame.The parameters define the tangent of the animation curve for the in tangent (before a key frame) and out tangent (after a key frame). Each tangent is specified with a pair, the distance to the key frame and the value of the tangent at this moment.
The interpolation then follows a bezier curve, with 2 control points defined by the specified tangent and positioned at 1/3 of the duration before the second KeyFrame or after the first KeyFrame. See the picture above.
 Parameters:
t1
 The delta time of the intangent, relative to the KeyFramev1
 The value of the intangentt2
 The delta time of the outtangent, relative to the KeyFramev2
 The value of the outtangent Returns:
 the new tangent interpolator

TANGENT
public static Interpolator TANGENT(Duration t, double v)
Creates a tangent interpolator, for which intangent and outtangent are identical. This is especially useful for the first and the last key frame of aTimeline
, because for these key frames only one tangent is used. Parameters:
t
 The delta time of the tangentv
 The value of the tangent Returns:
 the new Tangent interpolator
 See Also:
TANGENT(Duration, double, Duration, double)

interpolate
public Object interpolate(Object startValue, Object endValue, double fraction)
This method takes twoObjects
along with afraction
between0.0
and1.0
and returns the interpolated value.If both
Objects
implementNumber
, their values are interpolated. IfstartValue
implementsInterpolatable
the calculation defined ininterpolate()
is used. If neither of these conditions are met, a discrete interpolation is used, i.e.endValue
is returned if and only iffraction
is1.0
, otherwisestartValue
is returned.Before calculating the interpolated value, the fraction is altered according to the function defined in
curve()
. Parameters:
startValue
 start valueendValue
 end valuefraction
 a value between 0.0 and 1.0 Returns:
 interpolated value

interpolate
public boolean interpolate(boolean startValue, boolean endValue, double fraction)
This method takes twoboolean
values along with afraction
between0.0
and1.0
and returns the interpolated value.Before calculating the interpolated value, the fraction is altered according to the function defined in
curve()
. Parameters:
startValue
 the first data pointendValue
 the second data pointfraction
 the fraction in[0.0...1.0]
 Returns:
 the interpolated value

interpolate
public double interpolate(double startValue, double endValue, double fraction)
This method takes twodouble
values along with afraction
between0.0
and1.0
and returns the interpolated value.Before calculating the interpolated value, the fraction is altered according to the function defined in
curve()
. Parameters:
startValue
 the first data pointendValue
 the second data pointfraction
 the fraction in[0.0...1.0]
 Returns:
 the interpolated value

interpolate
public int interpolate(int startValue, int endValue, double fraction)
This method takes twoint
values along with afraction
between0.0
and1.0
and returns the interpolated value.Before calculating the interpolated value, the fraction is altered according to the function defined in
curve()
. Parameters:
startValue
 the first data pointendValue
 the second data pointfraction
 the fraction in[0.0...1.0]
 Returns:
 the interpolated value

interpolate
public long interpolate(long startValue, long endValue, double fraction)
This method takes twoint
values along with afraction
between0.0
and1.0
and returns the interpolated value.Before calculating the interpolated value, the fraction is altered according to the function defined in
curve()
. Parameters:
startValue
 the first data pointendValue
 the second data pointfraction
 the fraction in[0.0...1.0]
 Returns:
 the interpolated value

curve
protected abstract double curve(double t)
Mapping from [0.0..1.0] to itself. Parameters:
t
 time, but normalized to the range [0.0..1.0], where 0.0 is the start of the current interval, while 1.0 is the end of the current interval. Usually a function that increases monotonically. Returns:
 the curved value

