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 token |
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.
See also
Directive: ROTATE.
Commands for: Spatial statistics.
Example
CAPTION 'PTROTATE example'; STYLE=meta VARIATE [NVALUES=100] x,y CALCULATE y,x = URAND (910818; 100) PTROTATE [ANGLE=30; HUB=centroid] y; OLDX=x; NEWY=ycentroid; NEWX=xcentroid PTROTATE [ANGLE=-180] y; OLDX=x; NEWY=yorigin; NEWX=xorigin PRINT y,x,ycentroid,xcentroid,yorigin,xorigin DGRAPH y, ycentroid, yorigin; x, xcentroid, xorigin