#r #vectorization
Вопрос:
Я пытаюсь реализовать алгоритм Casteljau в R, но у меня проблемы с векторизацией в R. Вот мой код:
p0 <- c(50, 200)
p1 <- c(175,75)
p2 <- c(300, 200)
bezier_curve <- function(p0, p1, p2, t){ #let it be p0 is the pivot-point
segments(p0[[1]], p0[[2]], p1[[1]], p1[[2]])
segments(p0[[1]], p0[[2]], p2[[1]], p2[[2]])
find_some <- function(t){
sideP1 = t*p0 (1-t)*p1
sideP2 = t*p0 (1-t)*p2
curveP = t*sideP2 (1-t)*sideP1
}
curveP <- data.frame(t = seq(0, 1, 0.5))
result = find_some(curveP$t)
curveP$x = result[[1]]
curveP$y = result[[2]]
plot(curveP$x, curveP$y, type = 'l')
}
bezier_curve(p0, p1, p2, t)
Я передаю вектор t
find_some
функции с целью оценки функции в каждом элементе этого вектора, но вместо этого эта функция рассматривается t
буквально как вектор.
Как я могу с этим справиться? Попробуйте применить apply()
функцию к find_some
функции?