Skip to contents

coo_scale scales the coordinates by a 'scale' factor. If not provided, assumed to be the centroid size. It involves three steps: centering from current position, dividing coordinates by 'scale', pushing back to the original position. coo_scalex applies a scaling (or shrinking) parallel to the x-axis, coo_scaley does the same for the y axis.

Usage

coo_scale(coo, scale)

# S3 method for default
coo_scale(coo, scale = coo_centsize(coo))

# S3 method for Coo
coo_scale(coo, scale)

coo_scalex(coo, scale = 1)

# S3 method for default
coo_scalex(coo, scale = 1)

# S3 method for Coo
coo_scalex(coo, scale = 1)

coo_scaley(coo, scale = 1)

# S3 method for default
coo_scaley(coo, scale = 1)

# S3 method for Coo
coo_scaley(coo, scale = 1)

Arguments

coo

matrix of (x; y) coordinates or any Coo object.

scale

the scaling factor, by default, the centroid size for coo_scale; 1 for scalex and scaley.

Value

a single shape or a Coo object

Examples

# on a single shape
b <- bot[1] %>% coo_center %>% coo_scale
coo_plot(b, lwd=2)
coo_draw(coo_scalex(b, 1.5), bor="blue")
coo_draw(coo_scaley(b, 0.5), bor="red")


# this also works on Coo objects:
b <- slice(bot, 5) # for speed sake
stack(b)

b %>% coo_center %>% coo_scale %>% stack

b %>% coo_center %>% coo_scaley(0.5) %>% stack

#equivalent to:
#b %>% coo_center %>% coo_scalex(2) %>% stack