PTROTATE procedure

Rotates a point pattern (W. van den Berg).


Options

ANGLE = scalar
Angle, in degrees over which the point pattern is to be rotated; no default - must be set

HUB = string
Whether the point pattern is to be rotated around the origin or around the centroid (origin, centroid); default orig


Parameters

OLDY = variates
Vertical coordinates of each spatial point pattern

OLDX = variates
Horizontal coordinates of each spatial point pattern

NEWY = variates
Save the vertical coordinates of the rotated point patterns; if this unset, these replace the original values in OLDY

NEWX = variates
Save the horizontal coordinates of the rotated point patterns; if this unset, these replace the original values in OLDX

ROTATION = matrices
Save the rotation matrices


Description

PTROTATE rotates a point pattern. The vertical and horizontal coordinates must be supplied as variates using the parameters OLDY and OLDX. The angle over which the point pattern must be rotated must be supplied, in degrees, by the ANGLE option. When a positive angle is supplied the rotation is clockwise. A negative number results in a counter clockwise rotation. By default the rotation is around the origin, but you can set option HUB=centroid to perform the rotation around the centroid of the point pattern.

   The vertical coordinates of the rotated pattern can be saved, in a variate, using the NEWY parameter; if this is unset, the rotated pattern replaces the original pattern in OLDY. Similarly, the horizontal coordinates can be saved using the NEWX parameter, or in the original variate supplied by OLDX. The rotation matrix can be saved using the ROTATION parameter.

 

Options: ANGLE, HUB.

Parameters: OLDY, OLDX, NEWY, NEWX, ROTATION.


Method

A matrix is formed with 2 columns consisting of the coordinates supplied to parameters OLDY and OLDX. This matrix is post-multiplied by a 2×2 matrix, containing COS(ANGLE) on the diagonal, and plus and minus SIN(ANGLE) in the upper-right and lower-left cells.


Action with RESTRICT

Any restrictions on OLDX and OLDY are removed.