With 3 control points A, B, C, we get :
Let M the centroid of A(t), B(1-t) and N the centroid of B(t), C(1-t).
that is AM/AB = BN/BC = t
We then calculate that P is the centroid of M(t), N(1-t) : MP/MN = t
The curve being of degree 2, it is an arc of conic sections, precisely an arc of parabola.
We may then continue with next control points D, E to get a second
Bezier curve CDE "in the following" of the first.
If we state (as in the above applet) that BCD are in line, the whole curve has only one tangent in C and is "smooth".
If B and D are on the same side from C, we get a cusp point.
If we disconnect the directions of BC and CD, we get an angular point at C.
In the applet, you can drag the control points A,B,C,D,E,
D being restricted to be on line BC.
The draggable points M (M') define the parameter t of the current point P (P') for each of the two curves.
The above method can be used with 4 control points :
The Casteljau construction requires then one more iterate.
1st step : AM1/AB = BN1/BC = CP1/CD = t
2nd step : M1M2/M1N1 = N1N2/N1P1 = t
and finally M2P/M2N2 = t
The curve is a cubic (degree 3). It is the curve generated by the object CubicCurve2D in Java awt.geom, used for instance in the "loops game applet".