>  Docs Center  >  Libraries  >  Markwardt  >  QTPOW
Libraries

QTPOW

QTPOW

Name


  QTPOW

Author


  Craig B. Markwardt, NASA/GSFC Code 662, Greenbelt, MD 20770
  craigm@lheamail.gsfc.nasa.gov
  UPDATED VERSIONs can be found on my WEB PAGE:
      http://cow.physics.wisc.edu/~craigm/idl/idl.html

Purpose


  Raise quaternion Q to the "power" POW

Major Topics


  Geometry

Calling Sequence


  QNEW = QTPOW(Q, POW)

Description



  The function QTPOW raises a quaterion Q to the power P. The
  operation
      QNEW = QTPOW(Q, POW)
  is equivalent to
      QNEW = QTEXP( POW * QTLOG(Q))
  which is the same as the definition of raising a real number to
  any power (however, QTPOW is faster than using QTLOG and QTEXP).
  For integer values of POW, this form of exponentiation is also
  directly equivalent to the multiplication of that many Q's
  together.
  Geometrically, raising Q to any power between 0 and 1 realizes a
  rotation that smoothly interpolates between the identity
  quaternion and Q. Thus, QTPOW is useful for interpolation of
  quaternions or SLERPing (spherical linear interpolation).
  When raising more than one quaternion to a power at a time, the
  number of quaternions and powers must be equal.
  Conventions for storing quaternions vary in the literature and from
  library to library. This library uses the convention that the
  first three components of each quaternion are the 3-vector axis of
  rotation, and the 4th component is the rotation angle. Expressed
  in formulae, a single quaternion is given by:
    Q(0:2) = [VX, VY, VZ]*SIN(PHI/2)
    Q(3) = COS(PHI/2)
  where PHI is the rotation angle, and VAXIS = [VX, VY, VZ] is the
  rotation eigen axis expressed as a unit vector. This library
  accepts quaternions of both signs, but by preference returns
  quaternions with a positive 4th component.

Inputs



  Q - array of one or more unit quaternions. For a single
      quaternion, Q should be a 4-vector. For N quaternions, Q
      should be a 4xN array.
  POW - array of N powers, where N is the number of quaternions.

Returns



  The resulting exponentiated unit quaternions. For a single
  inputs, returns a 4-vector. For N input quaternions, returns N
  quaternions as a 4xN array.

Keyword Parameters



  NONE

Example



  ;; Form a rotation quaternion of 45 degrees about the X axis
  Q = qtcompose([1,0,0], !dpi/4)
  ;; Make an array of 1001 values smoothly varying from 0 to 1
  P = dindgen(1001)/1000d
  ;; Perform spherical linear interpolation
  QNEW = QTERP(Q, P)

See Also


  QTANG, QTAXIS, QTCOMPOSE, QTERP, QTEXP, QTFIND, QTINV, QTLOG,
  QTMAT, QTMULT, QTPOW, QTVROT

Modification History


  Written, July 2001, CM
  Documented, Dec 2001, CM
  Usage message, error checking, 15 Mar 2002, CM



© 2024 NV5 Geospatial Solutions, Inc. |  Legal
   Contact Us