Реализация Де Кастельжау в R, проблемы с векторизацией

#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 функции?