| circleCorrect | R Documentation |
Shift localization responses so they are centred on the origin
circleCorrect(df, unit = "cm", vrbl = "tap", r = 1, fitr = FALSE)
df |
Data frame with localization coordinates (X,Y). |
unit |
Unit of the coordinates (default: 'cm') |
vrbl |
Variable of coordinates (default: 'tap') |
r |
Radius of the circle the coordinates should be on (default: 1). |
fitr |
(boolean) Should radius be fit? (default: FALSE) |
The parameters vrbl and unit are combined with a lower
case x and y: tapx_cm and tapy_cm with default
settings. These should be columns in the data frame (df).
The data frame with corrected tapx_cm and tapy_cm
columns. The corrected localization responses fall closest to a circle with
radius r (in unit) and origin (0,0). Only response with
df$selected == 1 are used for this correction.
data("localization_aligned")
data("localization_unaligned")
localization_aligned <- convert2cm(localization_aligned, from='r')
localization_aligned <- convert2cm(localization_aligned, from='t')
par(mfrow=c(1,2))
plot(localization_aligned$tapx_cm, localization_aligned$tapy_cm,
main='aligned',xlab='cm', ylab='cm',
asp=1,bty='n', xlim=c(-2,12),ylim=c(-2,12),col='blue')
segments(localization_aligned$tapx_cm, localization_aligned$tapy_cm,
localization_aligned$handx_cm, localization_aligned$handy_cm, col='blue')
lines(c(-1,11),c(0,0),col='gray')
lines(c(0,0),c(-1,11),col='gray')
lines(cos(seq(0,pi/2,pi/200))*10,sin(seq(0,pi/2,pi/200))*10, col='gray')
centre <- circleFit(localization_aligned$tapx_cm, localization_aligned$tapy_cm, r=10)$par
points(centre['xc'], centre['yc'], col='red')
lines( (cos(seq(0,pi/2,pi/200))*10) + centre['xc'], (sin(seq(0,pi/2,pi/200))*10) + centre['yc'], col='red', lty=2)
points(localization_aligned$tapx_cm - centre['xc'], localization_aligned$tapy_cm - centre['yc'], col='green')
segments(localization_aligned$tapx_cm - centre['xc'], localization_aligned$tapy_cm - centre['yc'],
localization_aligned$handx_cm, localization_aligned$handy_cm, col='green')
localization_unaligned <- convert2cm(localization_unaligned, from='r')
localization_unaligned <- convert2cm(localization_unaligned, from='t')
plot(localization_unaligned$tapx_cm, localization_unaligned$tapy_cm,
main='unaligned',xlab='cm', ylab='cm',
asp=1,bty='n', xlim=c(-2,12),ylim=c(-2,12),col='blue')
segments(localization_unaligned$tapx_cm, localization_unaligned$tapy_cm,
localization_unaligned$handx_cm, localization_unaligned$handy_cm, col='blue')
lines(c(-1,11),c(0,0),col='gray')
lines(c(0,0),c(-1,11),col='gray')
lines(cos(seq(0,pi/2,pi/200))*10,sin(seq(0,pi/2,pi/200))*10, col='gray')
centre <- circleFit(localization_unaligned$tapx_cm, localization_unaligned$tapy_cm, r=10)$par
points(centre['xc'], centre['yc'], col='red')
lines( (cos(seq(0,pi/2,pi/200))*10) + centre['xc'], (sin(seq(0,pi/2,pi/200))*10) + centre['yc'], col='red', lty=2)
points(localization_unaligned$tapx_cm - centre['xc'], localization_unaligned$tapy_cm - centre['yc'], col='green')
segments(localization_unaligned$tapx_cm - centre['xc'], localization_unaligned$tapy_cm - centre['yc'],
localization_unaligned$handx_cm, localization_unaligned$handy_cm,, col='green')
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.