Skip to contents

Slides the coordinates so that the id-th point become the first one.

Usage

coo_slide(coo, id, ldk)

Arguments

coo

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

id

numeric the id of the point that will become the new first point. See details below for the method on Coo objects.

ldk

numeric the id of the ldk to use as id, only on Out

Value

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

Details

For Coo objects, and in particular for Out and Opn three different ways of coo_sliding are available:

  • no ldk passed and a single id is passed: all id-th points within the shapes will become the first points. $ldk will be slided accordingly.

  • no ldk passed and a vector of ids matching the length of the Coo: for every shape, the id-th point will be used as the id-th point. $ldk will be slided accordingly.

  • a single ldk is passed: the ldk-th ldk will be used to slide every shape. If an id is (also) passed, it is ignored with a message.

See examples.

Examples

h <- hearts %>% slice(1:5) # for speed sake
stack(h)

# set the first landmark as the starting point
stack(coo_slide(h, ldk=1))

# set the 50th point as the starting point (everywhere)
stack(coo_slide(h, id=50))

# set the id-random-th point as the starting point (everywhere)
set.seed(123) # just for the reproducibility
id_random <- sample(x=min(sapply(h$coo, nrow)), size=length(h),
replace=TRUE)
stack(coo_slide(h, id=id_random))