Learn R Programming

spatstat (version 1.48-0)

affine.linnet: Apply Geometrical Transformations to a Linear Network

Description

Apply geometrical transformations to a linear network.

Usage

"affine"(X, mat=diag(c(1,1)), vec=c(0,0), ...)
"shift"(X, vec=c(0,0), ..., origin=NULL)
"rotate"(X, angle=pi/2, ..., centre=NULL)
"scalardilate"(X, f, ...)
"rescale"(X, s, unitname)

Arguments

X
Linear network (object of class "linnet").
mat
Matrix representing a linear transformation.
vec
Vector of length 2 representing a translation.
angle
Rotation angle in radians.
f
Scalar dilation factor.
s
Unit conversion factor: the new units are s times the old units.
...
Arguments passed to other methods.
origin
Character string determining a location that will be shifted to the origin. Options are "centroid", "midpoint" and "bottomleft". Partially matched.
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).
unitname
Optional. New name for the unit of length. A value acceptable to the function unitname<-

Value

Another linear network (of class "linnet") representing the result of applying the geometrical transformation.

Details

These functions are methods for the generic functions affine, shift, rotate, rescale and scalardilate applicable to objects of class "linnet".

All of these functions perform geometrical transformations on the object X, except for rescale, which simply rescales the units of length.

See Also

linnet and as.linnet. Generic functions affine, shift, rotate, scalardilate, rescale.

Examples

Run this code
  U <- rotate(simplenet, pi)
  stretch <- diag(c(2,3))
  Y <- affine(simplenet, mat=stretch)
  shear <- matrix(c(1,0,0.6,1),ncol=2, nrow=2)
  Z <- affine(simplenet, mat=shear, vec=c(0, 1))

Run the code above in your browser using DataLab