Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

linear_trans

Create a custom linear transformation


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

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

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')

ggforce

Accelerating 'ggplot2'

v0.3.3
MIT + file LICENSE
Authors
Thomas Lin Pedersen [cre, aut] (<https://orcid.org/0000-0002-5147-4711>), RStudio [cph]
Initial release

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.