# affine.owin

##### Apply Affine Transformation To Window

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

##### Usage

```
# S3 method for owin
affine(X, mat=diag(c(1,1)), vec=c(0,0), …, rescue=TRUE)
```

##### Arguments

- X
Window (object of class

`"owin"`

).- mat
Matrix representing a linear transformation.

- vec
Vector of length 2 representing a translation.

- rescue
Logical. If

`TRUE`

, the transformed window will be processed by`rescue.rectangle`

.- …
Optional arguments passed to

`as.mask`

controlling the pixel resolution of the transformed window, if`X`

is a binary pixel mask.

##### Details

The window is subjected first to the linear transformation represented by
`mat`

(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.

This is a method for the generic function `affine`

.

##### Value

Another window (of class `"owin"`

) representing the
result of applying the affine transformation.

##### See Also

##### Examples

```
# NOT RUN {
# shear transformation
shear <- matrix(c(1,0,0.6,1),ncol=2)
X <- affine(owin(), shear)
# }
# NOT RUN {
plot(X)
# }
# NOT RUN {
data(letterR)
affine(letterR, shear, c(0, 0.5))
affine(as.mask(letterR), shear, c(0, 0.5))
# }
```

*Documentation reproduced from package spatstat, version 1.64-1, License: GPL (>= 2)*