The meaning of *subdividing* a curve is to cut
a given Bézier curve at **C**(*u*) for some *u* into two
curve segments, each of which is still a Bézier curve. Because the
resulting Bézier curves must have their own new control points, the
original set of control points is discarded. Moreover, since the original
Bézier curve of degree *n* is cut into two pieces, each of which is
a subset of the original degree *n* Bézier curve, the resulting
Bézier curves must be of degree *n*.

Our problem is:

Given a set ofWhile a correctness proof is a little tedious, the algorithm is actually very simple. In fact, de Casteljau's algorithm for evaluating the pointn+ 1 control pointsP_{0},P_{1},P_{2}, ...,P_{n}and a parameter valueuin the range of 0 and 1, we want to findtwosets ofn+1 control pointsQ_{0},Q_{1},Q_{2}, ...,Q_{n}andR_{0},R_{1},R_{2}, ...,R_{n}such that the Bézier curve defined byQ_{i}'s (resp.,R_{i}'s) is the piece of the original Bézier curve on [0,u] (resp., [u,1]).

If you compare these two figures carefully, you perhaps can see that
the left polyline consists of points
**P**_{00} = **P**_{0},
**P**_{10}, **P**_{20}, **P**_{30},
**P**_{40}, **P**_{50} and
**P**_{60} = **C**(*u*), while
the right polyline consists of points
**P**_{60} = **C**(*u*),
**P**_{51}, **P**_{42}, **P**_{33},
**P**_{24}, **P**_{15} and
**P**_{06} = **P**_{6}.
The following figures illustrate the selection of these points.

Recall from the triangular computation scheme of de Casteljau's algorithm.
For a given *u*, it takes *n* iterations to compute
**C**(*u*). In the course of computation, one can collect
the first and the last points on each column and, at the end, the
collection of the first (*resp.*, last) points gives the subdivision
corresponding to the piece of the original curve defined on [0,*u*]
(*resp.*, [*u*,1]). Thus, in the following triangular scheme,
the top edge in the direction of the arrows and the lower edge in the
** reversed** direction of the arrows
provide the control points of the first
and the second curve segments, respectively.

Note that since the line segment defined by **50** and **51** is tangent
to the curve at point **60**, the last leg of the left curve (*i.e.*,
point **50** to point **60**) is tangent to the left curve, and the
first leg of the right curve (*i.e.*, point **60** to point
**51**) is tangent to the right curve.

We can apply subdivision as many times as we want. But, we should keep in mind that if we want to keep the subdivided curve segments joining smoothly, we should keep the joining point and its two adjacent neighbors collinear.