package scipy

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
type tag = [
  1. | `Slerp
]
type t = [ `Object | `Slerp ] Obj.t
val of_pyobject : Py.Object.t -> t
val to_pyobject : [> tag ] Obj.t -> Py.Object.t
val create : times:[> `Ndarray ] Np.Obj.t -> rotations:Py.Object.t -> unit -> t

Spherical Linear Interpolation of Rotations.

The interpolation between consecutive rotations is performed as a rotation around a fixed axis with a constant angular velocity 1_. This ensures that the interpolated rotations follow the shortest path between initial and final orientations.

Parameters ---------- times : array_like, shape (N,) Times of the known rotations. At least 2 times must be specified. rotations : `Rotation` instance Rotations to perform the interpolation between. Must contain N rotations.

Methods ------- __call__

See Also -------- Rotation

Notes ----- .. versionadded:: 1.2.0

References ---------- .. 1 https://en.wikipedia.org/wiki/Slerp#Quaternion_Slerp

Examples -------- >>> from scipy.spatial.transform import Rotation as R >>> from scipy.spatial.transform import Slerp

Setup the fixed keyframe rotations and times:

>>> key_rots = R.random(5, random_state=2342345) >>> key_times = 0, 1, 2, 3, 4

Create the interpolator object:

>>> slerp = Slerp(key_times, key_rots)

Interpolate the rotations at the given times:

>>> times = 0, 0.5, 0.25, 1, 1.5, 2, 2.75, 3, 3.25, 3.60, 4 >>> interp_rots = slerp(times)

The keyframe rotations expressed as Euler angles:

>>> key_rots.as_euler('xyz', degrees=True) array([ 14.31443779, -27.50095894, -3.7275787 ], [ -1.79924227, -24.69421529, 164.57701743], [146.15020772, 43.22849451, -31.34891088], [ 46.39959442, 11.62126073, -45.99719267], [-88.94647804, -49.64400082, -65.80546984])

The interpolated rotations expressed as Euler angles. These agree with the keyframe rotations at both endpoints of the range of keyframe times.

>>> interp_rots.as_euler('xyz', degrees=True) array([ 14.31443779, -27.50095894, -3.7275787 ], [ 4.74588574, -32.44683966, 81.25139984], [ 10.71094749, -31.56690154, 38.06896408], [ -1.79924227, -24.69421529, 164.57701743], [ 11.72796022, 51.64207311, -171.7374683 ], [ 146.15020772, 43.22849451, -31.34891088], [ 68.10921869, 20.67625074, -48.74886034], [ 46.39959442, 11.62126073, -45.99719267], [ 12.35552615, 4.21525086, -64.89288124], [ -30.08117143, -19.90769513, -78.98121326], [ -88.94647804, -49.64400082, -65.80546984])

val to_string : t -> string

Print the object to a human-readable representation.

val show : t -> string

Print the object to a human-readable representation.

val pp : Format.formatter -> t -> unit

Pretty-print the object to a formatter.

OCaml

Innovation. Community. Security.