There are three ways of modifying the shape of a curve, namely modifying control points, modifying knots, and modifying the weights of control points. The first works for all four types of curves, the second can be applied to B-spline and NURBS curves, and the third can be used with rational Bézier and NURBS curves. This page concentrates on the first one: modifying the positions of control points.

To modify control points, we can move the existing control points or add new or delete existing ones.

To move a control points, select
**Edit** followed by
**Move**. This puts the system in the
** move** mode and the cursor becomes a north-west
pointing arrow. Then, you can click and drag a control point to move it
to another place. Note that when you click and
drag a control point, it becomes

The following figure shows a B-spline curve of degree 4. We first enter
the ** move** mode by selecting

If control point 10 is dragged to a new position as shown in the figure
below, its new coordinate values will be updated in the
**X**,
**Y**,
**Z** and
**W** buttons. The new coordinate becomes
(67.5,-5.5,0) with weight 1. It is important to notice that when a control
point of a B-spline or a NURBS curve moves, only portion of the curve will
be affected. This can be seen by comparing the figures above and below.
This is the well-known property known as
the ** local modification property** and is one
of the many advantages of using B-spline and NURBS curves. Modifying the
position of a single control point of a Bézier or a rational
Bézier curve will change the shape of the curve globally.

After a few experiments, you will find out that **
moving a control point will pull the curve in the direction of
movement**. Note also that **moving a control
point does not change the specification of the curve ( i.e.,
the number of control points, the number of knots and the degree of the
curve). Only the shape of the curve changes**.

The above is a B-spline curve of degree 4 used earlier in the discussion of
moving control points. The point marked with a square is control point 10
and the point marked with an ellipse is the tracing point on the curve
corresponding to *u* = 0.55.

To delete a control point, select
**Edit**, followed by
**Delete**. The cursor changes to a skull,
indicating that the system is in the ** delete** mode. Move this
delete (or skull) cursor on top of control point 10 and click.
Then, the curve, its control polygon and convex hell all
disappear. The control point you just clicked on also disappear and all
remaining control points are re-numbered. All control points before the
deleted one keep the original control point IDs, and all IDs of the remaining
control points will be decreased by one. Moreover, the control point with
the new ID 10 becomes selected. This is shown below.

Since deleting a control point has ruined the original curve specification,
this system considers you are creating a new one. What you need to do is to
display the new curve. Select **Curve**,
followed by
**Show Curve Segment**, followed by
**With Uniform Knots**,
**With Clamped Knots** or
**With Closed Knots**. The new curve will
be displayed. The following figure shows the new curve with clamped knots.

Please note that the convex hull for *u*=0.55 changes. But, the
curve itself does not change very much. One can easily notice that the
right bulge becomes smaller and the left one of the curve has no change
at all. This is due to the ** local modification property** of
B-spline and NURBS curve.

Deleting control points from a Bézier or rational Bézier curve is simpler. One can just delete a control point and due to the impact of deleting a control point on Bézier and rational Bézier curves being global, the system will immediately display the new curve and adjust its degree. The right figure below is the result of deleting control point 10 from the left one.

Since control points are ordered, one must specify where the new control
points should be placed. This system provides two options
**Insert After** and
**Insert Before**. The following figure
shows a B-spline curve of 6 and two more control points will be inserted
** after** control point 3.

To insert new control points *after* a control point, one need to do
two steps: **(1)** indicating the control point after which new control
points will be inserted (*i.e.*, in this case, one should indicate
control point 3), and **(2)** entering the ** insert** mode.

To carry out the first step, if the system is already in ** move**
mode, one can click on a control point (

After a control point is selected, one can select
**Edit** followed by
**Insert After** for inserting new control
points *after* the select one, or
**Insert Before** for inserting new
control points before the select one. Let us try *insert after* first.

Select **Edit** followed by
**Insert After**. The cursor changes to a
cross, meaning that the system is in the ** insert** mode and
the menu button displays

To get the curve back, we need to select
**Curve**, followed by
**Show Curve Segment**, followed by
**With Uniform Knots**,
**With Clamped Knots** or
**With Closed Knots**. The new curve will
be displayed. The following figure shows the new curve with clamped knots.

Based on this idea, the ** create** mode is actually equivalent to
inserting new control points

The process for inserting new control points *before* a select one is
similar. If the selected control point is ** k**, after inserting
a new control point

Note that *insert after* and *insert before* could have a
dramatically different effect even though new control points are inserted at
the same locations. The following left figure shows inserting two new control
points *before* control point 3. The positions of the new control
points are near to those two we used in *insert after*.
After insertion, the new control points become 3 and 4 and the original
control point 3 changes to control point 5. Thus, the curve will have
a twist as shown in the right figure.