java.lang.Object
org.apache.commons.numbers.quaternion.Slerp
All Implemented Interfaces:
DoubleFunction<Quaternion>

public class Slerp extends Object implements DoubleFunction<Quaternion>
Perform spherical linear interpolation (Slerp). The Slerp algorithm is designed to interpolate smoothly between two rotations/orientations, producing a constant-speed motion along an arc. The original purpose of this algorithm was to animate 3D rotations. All output quaternions are in positive polar form, meaning a unit quaternion with a positive scalar component.
  • Constructor Details

    • Slerp

      public Slerp(Quaternion start, Quaternion end)
      Create an instance.
      Parameters:
      start - Start of the interpolation.
      end - End of the interpolation.
  • Method Details

    • apply

      public Quaternion apply(double t)
      Performs the interpolation. The rotation returned by this method is controlled by the interpolation parameter, t. All other values are interpolated (or extrapolated if t is outside of the [0, 1] range). The returned quaternion is in positive polar form, meaning that it is a unit quaternion with a positive scalar component.
      Specified by:
      apply in interface DoubleFunction<Quaternion>
      Parameters:
      t - Interpolation control parameter. When t = 0, a rotation equal to the start instance is returned. When t = 1, a rotation equal to the end instance is returned.
      Returns:
      an interpolated quaternion in positive polar form.