NOTE: I am only concerned with quadratic Bézier curves.
So, dividing a Bézier curve into two is remarkably easy; just interpolate between start and control points by $t$, and get the end point for $t$. To get the other side; interpolate between end and control points by $1 - t$, and get the start point for $t$.
However, I am struggling with trying to subdivide a Bézier curve into more than $2$ new curves.
I tried to do this iteratively, by adjusting the t value I want based on the original curve, multiplied by a percentage that the second of the two new curves is of the original; basically, if my new curve is $75\%$ of the original (for a starting value of $t = 0.25$), multiply the next desired $ t $ value by $0.75$ to get an adjusted t value to use for the next slice. This is not working though, and I am unsure why (whether it is a math issue, or some other underlying problem I have elsewhere).
Anyways, let's say we have a curve of the following:
p_0 = 0,0 p_1 = 10,10 p_2 = 20,10
And I want to derive three curves from this for the following values of $t$:
t = 0.33 t = 0.66 t = 1
Such that the three new curves are $0.0 - 0.33$, $0.33 - 0.66$, and $0.66 - 1$ of the original curve.
What is the correct way to do this? I hope this makes sense.