Last chance! 50% off unlimited learning
Sale ends in
coo_samplerr(coo, n)
matrix
of (x; y) coordinates or a list
, or any Coo object.integer
, the number of points to sample.matrix
of (x; y) coordinates or a Coo object.coo_aligncalliper
,
coo_alignminradius
,
coo_alignxax
, coo_align
,
coo_baseline
, coo_bookstein
,
coo_boundingbox
,
coo_calliper
, coo_centdist
,
coo_center
, coo_centpos
,
coo_close
, coo_down
,
coo_dxy
, coo_extract
,
coo_flipx
, coo_force2close
,
coo_interpolate
, coo_jitter
,
coo_left
, coo_nb
,
coo_perimcum
, coo_perimpts
,
coo_perim
, coo_rev
,
coo_right
, coo_rotatecenter
,
coo_rotate
, coo_sample
,
coo_scalex
, coo_scale
,
coo_shearx
, coo_slice
,
coo_slidedirection
,
coo_slidegap
, coo_slide
,
coo_smoothcurve
, coo_smooth
,
coo_template
, coo_trans
,
coo_trimbottom
, coo_trimtop
,
coo_trim
, coo_up
,
is_clockwise
, is_closed
,
is_equallyspacedradii
Other sampling functions: coo_extract
,
coo_interpolate
, coo_sample
stack(bot)
bot <- coo_center(bot)
stack(coo_samplerr(bot, 12))
coo_plot(bot[1])
coo_plot(rr <- coo_samplerr(bot[1], 12))
cpos <- coo_centpos(bot[1])
segments(cpos[1], cpos[2], rr[, 1], rr[, 2])
# Sometimes, interpolating may be useful:
shp <- hearts[1] %>% coo_center
# given a shp, draw segments from each points on it, to its centroid
draw_rads <- function(shp, ...){
segments(shp[, 1], shp[, 2], coo_centpos(shp)[1], coo_centpos(shp)[2], ...)
}
# calculate the sd of argument difference in successive points,
# in other words a proxy for the homogeneity of angles
sd_theta_diff <- function(shp)
shp %>% complex(real=.[, 1], imaginary=.[, 2]) %>%
Arg %>% `[`(-1) %>% diff %>% sd
# no interpolation: all points are sampled from existing points but the
# angles are not equal
shp %>% coo_plot(points=TRUE, main="no interpolation")
shp %>% coo_samplerr(64) %T>% draw_rads(col="red") %>% sd_theta_diff
# with interpolation: much more homogeneous angles
shp %>% coo_plot(points=TRUE)
shp %>% coo_interpolate(360) %>% coo_samplerr(64) %T>% draw_rads(col="blue") %>% sd_theta_diff
Run the code above in your browser using DataLab