ROTATE

The ROTATE function returns a rotated and/or transposed copy of Array . ROTATE can only rotate arrays in multiples of 90 degrees. To rotate by amounts other than multiples of 90 degrees, use the ROT function. Note, however, that ROTATE is more efficient.

ROTATE can also be used to reverse the order of elements in vectors. For example, to reverse the order of elements in the vector X, use the expression ROTATE(X,2) . If X = [0,1,2,3] then ROTATE(X,2) yields the resulting array, [3,2,1,0].

Transposition is performed before rotation. Rotations are viewed with the first row at the top.

Calling Sequence

Result = ROTATE( Array, Direction )

Arguments

Array

The array to be rotated. Array can have only one or two dimensions. The result has the same type as Array . The dimensions of the result are the same as those of Array if Direction is equal to 0 or 2. The dimensions are transposed if the direction is 4 or greater.

Direction

Direction specifies the operation to be performed as follows:

  • Rotation Directions

Direction

Transpose?

Rotation Counterclockwise

X 1 ·

Y 1 ·

0

No

None

X 0 ·

Y 0 ·

1

No

90 ·

-Y 0 ·

X 0 ·

2

No

180 ·

-X 0 ·

-Y 0 ·

3

No

270 ·

Y 0 ·

-X 0 ·

4

Yes

None

Y 0 ·

X 0 ·

5

Yes

90 ·

-X 0 ·

Y 0 ·

6

Yes

180 ·

-Y 0 ·

-X 0 ·

7

Yes

270 ·

X 0 ·

-Y 0 ·

In the table above, (X 0 , Y 0 ) are the original subscripts, and (X 1 , Y 1 ) are the subscripts of the resulting array. The notation -Y 0 indicates a reversal of the Y axis, Y 1 = N y - Y 0 - 1. Direction is taken modulo 8, so a rotation of -1 is the same as 7, 9 is the same as 1, etc.

Example

Create and display a wedge image by entering:

F = REPLICATE(1, 256) # FINDGEN(256) & TVSCL, F

To display the image rotated 90 degrees counterclockwise, enter:

TVSCL, ROTATE(F, 1)

See Also

ROT , TRANSPOSE