Class Slerp
- 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 Summary
Constructors Constructor Description Slerp(Quaternion start, Quaternion end)
Create an instance.
-
-
-
Constructor Detail
-
Slerp
public Slerp(Quaternion start, Quaternion end)
Create an instance.- Parameters:
start
- Start of the interpolation.end
- End of the interpolation.
-
-
Method Detail
-
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 ift
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 interfaceDoubleFunction<Quaternion>
- Parameters:
t
- Interpolation control parameter. Whent = 0
, a rotation equal to the start instance is returned. Whent = 1
, a rotation equal to the end instance is returned.- Returns:
- an interpolated quaternion in positive polar form.
-
-