# affine: Apply Affine Transformation

## Description

Applies any affine transformation of the plane (linear transformation
plus vector shift) to a plane geometrical object,
such as a point pattern or a window.## Usage

affine(X, mat=diag(c(1,1)), vec=c(0,0))

## Arguments

X

Any suitable dataset representing a two-dimensional
object, such as a point pattern (object of class `"ppp"`

),
or a window (object of class `"owin"`

).

mat

Matrix representing a linear transformation.

vec

Vector of length 2 representing a translation.

## Value

- Another object of the same type, representing the
result of applying the affine transformation.

## Details

This is generic. Methods are provided for
point patterns (`affine.ppp`

)
and windows (`affine.owin`

). First the linear transformation represented by
`mat`

is applied (multiplying on the left by `mat`

),
and then the result is translated by the vector `vec`

.
The argument `mat`

must be a nonsingular $2 \times 2$
matrix.

## Examples

library(spatstat)
data(cells)
# shear transformation
X <- affine(cells, matrix(c(1,0,0.6,1),ncol=2))
plot(X)
# rescale y coordinates by factor 1.3
plot(affine(cells, diag(c(1,1.3))))