Dividir uma curva cúbica de bezier em vários pontos

Estou escrevendo um algoritmo que dividirá uma curva cúbica de bezier em várias curvas (até 4). Eu tenho os valores t para cada ponto em que quero dividir desde o início. Eu também tenho um algoritmo para dividir a curva uma vez:

SubdivPoints subdivideBezier(Vector2 p0, Vector2 p1, Vector2 p2, Vector2 p3, float t)
{
    Vector2 p11 = (p1 - p0) * t + p0;
    Vector2 p21 = (p2 - p1) * t + p1;
    Vector2 p31 = (p3 - p2) * t + p2;

    Vector2 p12 = (p21 - p11) * t + p11;
    Vector2 p22 = (p31 - p21) * t + p21;

    Vector2 p13 = (p22 - p12) * t + p12;

    return SubdivPoints(p11, p12, p22, p31, p13);
}

Minha pergunta é: existe uma maneira simples de expandir isso para dividir várias vezes? Eu imagino que após cada divisão eu quero recalcular os valores de t; Uma coisa que me pergunto é se a aritmética simples funcionará aqui. Por exemplo. Digamos que eu tenha valores t 0,2 e 0,6. Dividi a curva em t = 0,2, dando-me duas curvas. A segunda curva cobre os valores de t 0,2 <t <1 do original. Se eu recalcular o segundo valor t de 0,6 pela divisão: (0,6 - 0,2) / (1 - 0,2) = 0,5, então divida a segunda curva em t = 0,75, isso funcionará? Ou preciso recalcular de outra maneira?

questionAnswers(1)

yourAnswerToTheQuestion