linear_trans: Create a custom linear transformation In ggforce: Accelerating 'ggplot2'

Description

This function lets you compose transformations based on a sequence of linear transformations. If the transformations are parameterised the parameters will become arguments in the transformation function. The transformations are one of `rotate`, `shear`, `stretch`, `translate`, and `reflect`.

Usage

 ``` 1 2 3 4 5 6 7 8 9 10 11``` ```linear_trans(...) rotate(angle) stretch(x, y) shear(x, y) translate(x, y) reflect(x, y) ```

Arguments

 `...` A number of transformation functions. `angle` An angle in radians `x` the transformation magnitude in the x-direction `y` the transformation magnitude in the x-direction

Value

`linear_trans` creates a trans object. The other functions return a 3x3 transformation matrix.

Examples

 ```1 2 3 4 5 6 7 8``` ```trans <- linear_trans(rotate(a), shear(1, 0), translate(x1, y1)) square <- data.frame(x = c(0, 0, 1, 1), y = c(0, 1, 1, 0)) square2 <- trans\$transform(square\$x, square\$y, a = pi / 3, x1 = 4, y1 = 8) square3 <- trans\$transform(square\$x, square\$y, a = pi / 1.5, x1 = 2, y1 = -6) square <- rbind(square, square2, square3) square\$group <- rep(1:3, each = 4) ggplot(square, aes(x, y, group = group)) + geom_polygon(aes(fill = factor(group)), colour = 'black') ```

Example output

```Loading required package: ggplot2
```

ggforce documentation built on March 5, 2021, 5:09 p.m.