affine.tess
Apply Geometrical Transformation To Tessellation
Apply various geometrical transformations of the plane to each tile in a tessellation.
Usage
# S3 method for tess
reflect(X) # S3 method for tess
flipxy(X)
# S3 method for tess
shift(X, …)
# S3 method for tess
rotate(X, angle=pi/2, …, centre=NULL)
# S3 method for tess
scalardilate(X, f, …)
# S3 method for tess
affine(X, mat=diag(c(1,1)), vec=c(0,0), …)
Arguments
- X
Tessellation (object of class
"tess"
).- angle
Rotation angle in radians (positive values represent anticlockwise rotations).
- mat
Matrix representing a linear transformation.
- vec
Vector of length 2 representing a translation.
- f
Positive number giving scale factor.
- …
Arguments passed to other methods.
- centre
Centre of rotation. Either a vector of length 2, or a character string (partially matched to
"centroid"
,"midpoint"
or"bottomleft"
). The default is the coordinate originc(0,0)
.
Details
These are method for the generic functions
reflect
,
flipxy
,
shift
,
rotate
,
scalardilate
,
affine
for tessellations (objects of class "tess"
).
The individual tiles of the tessellation, and the window containing the tessellation, are all subjected to the same geometrical transformation.
The transformations are performed by the corresponding method
for windows (class "owin"
) or images (class "im"
)
depending on the type of tessellation.
If the argument origin
is used in shift.tess
it is interpreted as applying to the window containing the
tessellation. Then all tiles are shifted by the same vector.
Value
Another tessellation (of class "tess"
) representing the
result of applying the geometrical transformation.
See Also
Generic functions
reflect
,
shift
,
rotate
,
scalardilate
,
affine
.
Methods for windows:
reflect.default
,
shift.owin
,
rotate.owin
,
scalardilate.owin
,
affine.owin
.
Methods for images:
reflect.im
,
shift.im
,
rotate.im
,
scalardilate.im
,
affine.im
.
Examples
# NOT RUN {
live <- interactive()
if(live) {
H <- hextess(letterR, 0.2)
plot(H)
plot(reflect(H))
plot(rotate(H, pi/3))
} else H <- hextess(letterR, 0.6)
# shear transformation
shear <- matrix(c(1,0,0.6,1),2,2)
sH <- affine(H, shear)
if(live) plot(sH)
# }