= Control point
{title2=$P_i$}
A <control point> is an editable geometric handle used to specify a <curve> or <surface> through a <basis> or refinement rule. The handle is part of the representation; it need not be a <point> on the resulting <curve>. In a <Bézier curve>, the <control points> are the geometric <coefficients> of the <Bernstein basis>. Joining them in order gives a <control polygon>, which makes the handles easy to manipulate without drawing the <curve> as a chain of <line segments>.<Curves and Surfaces in Geometric Modeling: Theory and Algorithms by Jean Gallier>[§4.3, pp. 132–133: control points and Bernstein representation; §5.1, p. 148: control polygon]{ref}
For example, use the cubic <Bézier curve> with <control points>
$$
P_0=(0,0),\qquad P_1=(1,2),\qquad P_2=(3,2),\qquad P_3=(4,0).
$$
Its <Bernstein basis> representation gives
$$
C(t)=\bigl(3t+3t^2-2t^3,\;6t(1-t)\bigr),\qquad 0\leq t\leq1,\qquad C(1/2)=(2,1.5).
$$
The greatest height is $1.5$, so neither interior <control point>, both at height $2$, lies on this <curve>. The endpoint <control points> do lie on it: $C(0)=P_0$ and $C(1)=P_3$. This separates <interpolation>, which requires passage through prescribed data, from an approximating representation, which uses handles to shape a <curve> without requiring passage through every handle. If measured <points> must be interpolated, choose <control points> to satisfy those constraints; simply using the measured <points> as the handles of a <Bézier curve> does not enforce <interpolation>.
\Image[/control-point-cubic-curve-edit.png]
{title=Original cubic and the curve after moving only the interior control point P1 upward by one unit, with fixed endpoints and a smaller displacement at the same parameter}
Now move only $P_1$ by the <vector> $h=(0,1)$, giving $\widetilde P_1=(1,3)$. With the <Bernstein basis> and parameter $t$ unchanged, the new <curve> is
$$
\widetilde C(t)=C(t)+3t(1-t)^2h.
$$
At $t=1/2$ this gives $\widetilde C(1/2)=(2,15/8)$, a displacement $(0,3/8)$ despite moving the handle by a full unit. Both endpoints stay fixed because the <coefficient> $3t(1-t)^2$ vanishes there. Thus dragging a <control point> shapes a whole range of the <curve>; it does not generally drag an arbitrary selected <point> on the <curve> by the same <vector>. The <control-point influence on a curve> tells us exactly how much each parameter value moves.
Back to article page