# affine.psp: Apply Affine Transformation To Line Segment Pattern In spatstat.geom: Geometrical Functionality of the 'spatstat' Family

## Description

Applies any affine transformation of the plane (linear transformation plus vector shift) to a line segment pattern.

## Usage

 ```1 2``` ``` ## S3 method for class 'psp' affine(X, mat=diag(c(1,1)), vec=c(0,0), ...) ```

## Arguments

 `X` Line Segment pattern (object of class `"psp"`). `mat` Matrix representing a linear transformation. `vec` Vector of length 2 representing a translation. `...` Arguments passed to `affine.owin` affecting the handling of the observation window, if it is a binary pixel mask.

## Details

The line segment pattern, and its window, are subjected first to the linear transformation represented by `mat` (multiplying on the left by `mat`), and are then translated by the vector `vec`.

The argument `mat` must be a nonsingular 2 * 2 matrix.

This is a method for the generic function `affine`.

## Value

Another line segment pattern (of class `"psp"`) representing the result of applying the affine transformation.

## Author(s)

and \rolf

`affine`, `affine.owin`, `affine.ppp`, `affine.im`, `flipxy`, `rotate`, `shift`
 ``` 1 2 3 4 5 6 7 8 9 10``` ``` oldpar <- par(mfrow=c(2,1)) X <- psp(runif(10), runif(10), runif(10), runif(10), window=owin()) plot(X, main="original") # shear transformation Y <- affine(X, matrix(c(1,0,0.6,1),ncol=2)) plot(Y, main="transformed") par(oldpar) # # rescale y coordinates by factor 0.2 affine(X, diag(c(1,0.2))) ```