ROT A - ROTate image/volume around arbitrary center

(10/24/11)

PURPOSE

Rotates an image/volume around specified center by specified angles. Can choose type of interpolation (which affects accuracy) and corner values. This operation replaces: 'RT C', 'RT 3A', and 'RT 3AS'   Example.

SEE ALSO

ROT [ROTate image/volume around center by specified angle(s)]
ROT L [ROTate volume around specified line]
RT SF [Rotate and Shift - image, Fourier based spline interpolation ||]
RT SQ [Rotate and Shift - image, Quadratic interpolation ||]

USAGE

.OPERATION: ROT A

.INPUT FILE: PIC001
[Enter name of file to be rotated.]

.OUTPUT FILE: ROT001
[Enter name of file where the rotated image/volume is to be stored.]

If input is a image SPIDER asks:

.ROTATION ANGLE: 10.5
[Enter the rotation angle (in degrees). Positive rotations appear counter-clockwise.]

.X & Y CENTER OFFSETS: 12, 60.5
[Enter offset between SPIDER image center and the desired rotation point.]

If input is a volume SPIDER asks:

.PHI, THETA, & PSI: 10.5, 13.7, 45.8
[Enter the Eulerian angles for rotation (in degrees): Phi (around Z), Theta (around Y), and Psi (around Z).]

.X, Y & Z CENTER OFFSETS: 12, 60.5
[Enter offset between SPIDER image center and the desired rotation point.]

.LINEAR, QUADRATIC, OR FBS INTERPOLATION (L,Q,F): F
[Linear interpolation is faster but inferior to quadratic interpolation. Fourier-based spline interpolation gives best interpolation accuracy. Image interpolation is bi-linear, bi-quadratic or FBS. Volume interpolation is tri-linear, tri-quadratic or FBS.]

.UNROTATED, AVG, MIN, OR SPECIFIED CORNERS (U,A,M,2.5)',
[Sets value for corner values, can input a numerical value or use image/volume specific values.]

NOTES

  1. Program reads volume into memory - huge volumes may not fit.

  2. For volumes positive rotations are clockwise.

  3. Rotation matrix used:
     
              R = R(psi) * R(theta) * R(phi) 
               c  s  0        c  0 -s       c  s  0 
              -s  c  0    *   0  1  0   *  -s  c  0 
               0  0  1        s  0  c       0  0  1 
    

  4. Implemented by P. Penczek, A. Leith, & G. Kishchenko.

SUBROUTINES

ROTATES, ROTATES3Q, ROTATES3L, RTSQ, RTSF, FBS2, FBS3

CALLER

UTIL3