Dividir una curva bezier

Estoy trabajando en un juego para iPhone que crea un camino después de tu personaje a medida que te mueves (el movimiento es similar a la serpiente pero con curvas en términos de dirección). La forma en que lo hago ahora es simplemente manteniendo todos los vértices en los que el jugador ha estado en una matriz y luego dibujando un círculo en cada uno de ellos cada cuadro.

Quiero pasar a utilizar curvas bezier en su lugar. He leído mucho sobre ellos y los entiendo bastante bien, pero no soy muy bueno con las matemáticas. Comprendí que debería usar el algoritmo de DeCasteljau para dividir la curva en una t específica, pero no he descubierto qué fórmula usar y cómo implementar esto en el código.

Así que lo que tengo actualmente son todos los puntos de control para una curva en t = 1. Ahora solo quiero obtener todos los puntos de control para t <1. ¿Alguien puede darme una fórmula matemática fácil de entender para esto o una implementación (preferiblemente en Python u Objective-C)? ¿Quizás incluso hay un objeto que ya puedes usar en el iPhone SDK para dividir curvas?

Respuestas a la pregunta(4)

Su respuesta a la pregunta