Usage of the SimpleInterpolator class requires the implementation of function
curve(t:Number):Number , which is expected to emit the target value for a given t .
The code snippet for this recipe implements the curve function where:
F If the t greater than 1 - attraction , the function snaps to the end value
F If t is decreasing and goes below attraction, it snaps to the start value
F Otherwise, t progresses linearly
In our example, we use our magnetic interpolator in the KeyFrame instance to animate
the displacement of the Circle instance along the x-axis over a period of two seconds.
As the animation engine interpolates the location of the circle ( circ.centerX ) using the
MagneticInterpolator instance, it will snap the end position of 375 when the time ratio
t slides beyond the attraction property. When the animation is running in reverse, the
interpolator snaps to 0 when t is less than attraction .
F Building animation with the KeyFrame API
F Morphing shapes with the DelegateShape class
Morphing shapes with the DelegateShape
You have seen these cool effects in movies and TV shows where an object smoothly transition
from its current shape to another shape. The transition is known as morphing and you can
easily achieve the same effect in JavaFX. In this recipe, we will explore how to use animation
sequences and the DelegateShape class to morph shapes.
This recipe uses animation concepts presented in previous recipes. If you are not familiar with
how to create animation sequences, review the recipe Building animation with the KeyFrame
API . This recipe also uses the DelegateShape class, which is found in package javafx.
scene.shape . This class, as you will see, can be used to create animation sequences of
objects morphing from one shape to the other.
How to do it...
The following code snippet shows how to create a morphing animated sequence between
three shapes. You can get the full code listing from ch03/source-code/src/animation/