spatstat (version 1.55-1)

affine.tess: Apply Geometrical Transformation To Tessellation

Description

Apply various geometrical transformations of the plane to each tile in a tessellation.

Usage

# S3 method for tess
reflect(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 origin c(0,0).

Value

Another tessellation (of class "tess") representing the result of applying the geometrical transformation.

Details

These are method for the generic functions reflect, 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.

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

Run this code
# 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)
# }

Run the code above in your browser using DataCamp Workspace