1 | gaze_interpolation(data, maxGapLength)
|
data |
|
maxGapLength |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | ##---- Should be DIRECTLY executable !! ----
##-- ==> Define data, use random,
##-- or do help(data=index) for the standard data sets.
## The function is currently defined as
function (data, maxGapLength)
{
lastValid <- 0
for (i in 1:nrow(data)) {
if (!is.na(data$Validity[i])) {
lastValid <- i
}
else if ((i < length(data$Validity)) & (!is.na(data$Validity[i +
1])) & (lastValid > 0)) {
if ((data$Timestamp[i + 1] - data$Timestamp[lastValid] <=
maxGapLength)) {
for (j in (lastValid + 1):i) {
s <- (j - lastValid)/((i + 1) - lastValid)
t <- data$GazePointX[i + 1] - data$GazePointX[lastValid]
t2 <- data$GazePointY[i + 1] - data$GazePointY[lastValid]
data$GazePointX[j] <- s * t + data$GazePointX[lastValid]
data$GazePointY[j] <- s * t2 + data$GazePointY[lastValid]
t <- data$EyeLocX[i + 1] - data$EyeLocX[lastValid]
t2 <- data$EyeLocY[i + 1] - data$EyeLocY[lastValid]
t3 <- data$EyeLocZ[i + 1] - data$EyeLocZ[lastValid]
data$EyeLocX[j] <- s * t + data$EyeLocX[lastValid]
data$EyeLocY[j] <- s * t2 + data$EyeLocY[lastValid]
data$EyeLocZ[j] <- s * t3 + data$EyeLocZ[lastValid]
t <- data$Timestamp[i + 1] - data$Timestamp[lastValid]
data$Timestamp[j] <- s * t + data$Timestamp[lastValid]
data$Validity[i] <- 0
}
}
}
}
return(data)
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.