Finally, we will be able to represent circular arcs and full circles. The former use rational Bézier curves and the latter use NURBS.

Since circles are special cases of ellipses, they can certainly be represented
with rational Bézier curves of degree 2 with the only weight being < 1.
Hence, if we can find this weight, we can represent circles. To begin with, we
learn from geometry that the two legs of the control
polygon must be equal, **P**_{0}**P**_{1} =
**P**_{1}**P**_{2}. Let the center and radius of the
circle that is represented by the rational Bézier curve be **O** and
** r**, respectively, as shown in the figure below. Let the mid-point
of chord

From right triangle **OMP**_{0}, we have
|**OM**| = ** r**sin(

From right triangle **O****P**_{0}**P**_{1}, we have
**OP**_{1} = ** r**/sin(

Now, we can compute *w*/(1+*w*) using
|**MX**|/|**MP**_{1}| and obtain the following result:

Solving for *w*, we have a surprisingly simple result: the only weight
*w* is equal to the sine of the half angle at control point
**P**_{1}!

This means: given three control points **P**_{0},
**P**_{1} and **P**_{2} such that
**P**_{0}**P**_{1} =
**P**_{1}**P**_{2} holds, if we choose *w*,
the weight for **P**_{1}, to be sin(** a**), where

There are two very simple and commonly seen examples. The first is a quarter
circle. The angle at **P**_{1} is 90 degree and
** a** is 45 degree. Therefore, choosing

Our second example is 1/3 of a circle. Since a circle can be inscribed in an
equilateral triangle, a triangle with all sides being equal, one-third of this
circle has its opposite angle of 60 degree. Therefore, ** a** is 30
degree. If we choose

We can take three 1/3 circular arcs or four quarter circular arcs and piece them together to make a full circle as shown below. But, what are their representations? Of course, they must be NURBS curves of degree 2. What we need are the control points and knots.

Let use consider the equilateral case first. This is shown in the left figure
above. Each vertex of the equilateral is a control point with weight 1/2 as
described earlier. The lower-left 1/3 is defined by control points
**P**_{0}, **P**_{1} and **P**_{2}; the top
1/3 is defined by **P**_{2}, **P**_{3} and
**P**_{4}; and the lower-right 1/3 is defined by
**P**_{4}, **P**_{5} and **P**_{6} =
**P**_{0}. This part is trivial. Next, we investigate the knots.
Since *n* = 6 and *p* = 2, *m* = 6 + 2 + 1 (*i.e.*,
10 knots). Of these 10 knots, the first three and last three are 0's and 1's,
(*i.e.*, *u*_{0} = *u*_{1}
= *u*_{2} = 0, and *u*_{7} = *u*_{8}
= *u*_{9} = 1).
The unknown knots so far are *u*_{3}, *u*_{4},
*u*_{5} and *u*_{6}. A natural way would be to have
1/3 and 2/3 as internal knots because the circular arcs on domains
[0, 1/3], [1/3, 2/3] and [2/3, 1]
divide the full circle into three equal length circular arcs. Thus, we have
two more knots, and need two more.

Look at the figure and you will see that control point **P**_{2} lies
on the circle at its 1/3 length. How do we force a curve to pass through a
control point? This is what de Boor's algorithm does. When computing a point
corresponding to *u* on a B-spline/NURBS curve, we insert *u* multiple
times until the multiplicity of *u* is *p*, where *p* is the
degree of the curve. The last time when *u* is inserted, the corresponding
point on the curve is actually a (new) control point **P**_{2}!
This observation tells us that if 1/3 has a multiplicity 2,
its corresponding point on the curve is a control point. In summary, we can
have *u*_{3} = *u*_{4} = 1/3 and
*u*_{5} = *u*_{6} = 2/3. In other words, to define
a full circle using a equilateral, we have knots 0, 0, 0, 1/3, 1/3, 2/3, 2/3,
1, 1, 1!
Similarly, to define a full circle with a square, we will need nine control
points as shown in the figure, and knots, 0, 0, 0, 1/4, 1/4, 1/2, 1/2, 3/4, 3/4,
1, 1, 1.
Based on this discussion, can you define a full circle using a regular polygon
of *n* sides?