Control-point influence on a curve (source code)

= Control-point influence on a curve
{title2=$\Delta C(t)=b_i(t)h$}

For a <parametric curve> represented by fixed scalar <functions> $b_j$ and <control points> $P_j$ in <Euclidean space>, write
$$
C(t)=\sum_j b_j(t)P_j,\qquad \widetilde P_i=P_i+h,\qquad \widetilde P_j=P_j\quad(j\ne i).
$$
The influence function of this handle is $b_i$: the resulting displacement <vector> is $\Delta C(t)=\widetilde C(t)-C(t)=b_i(t)h$, and its <norm> is $|b_i(t)|\,\|h\|$. These are exact finite changes, not only a first-order estimate. Where $b_i$ is negative the displacement points opposite to $h$. Where $b_i(t)=0$, the <curve> is unchanged at that parameter.

\Image[/control-point-cubic-basis-influence.png]
{title=The influence coefficient 3t(1-t)^2 equals the vertical displacement for a unit upward move of P1, reaches 4/9 at t=1/3, and vanishes at both endpoints}

For the cubic <Bézier curve> above, the <Bernstein basis> influence function is $b_{1,3}(t)=3t(1-t)^2$. Its <derivative> is
$$
b_{1,3}'(t)=3(1-t)(1-3t).
$$
It increases up to $t=1/3$ and decreases thereafter on $[0,1]$. Consequently the largest displacement at corresponding parameters is
$$
\max_{0\leq t\leq1}\|\widetilde C(t)-C(t)\|=\frac49\|h\|,\qquad C(1/3)=\left(\frac{34}{27},\frac43\right),\qquad \widetilde C(1/3)=\left(\frac{34}{27},\frac{16}{9}\right).
$$
For $h=(0,1)$ it is $4/9$. This is a comparison at the same parameter. A geometric closest-distance comparison, as in a <closest-point search on a subdivision curve>, instead minimizes over another parameter:
$$
d\bigl(C(t),\widetilde C([0,1])\bigr)=\min_{0\leq s\leq1}\|\widetilde C(s)-C(t)\|\leq\|\widetilde C(t)-C(t)\|.
$$
The closest parameter $s$ can differ from $t$, so $4/9$ is not automatically a maximum closest-distance separation of the two <curves>. Neither parameter is assumed to be <arc length>.

The <support of a function> $b_i$ is the closure of the parameter values where $b_i\ne0$. It bounds where a nonzero handle move can act, but may include boundary <points> where the actual displacement is zero. Here the <support of a function> $b_{1,3}$ is all of $[0,1]$ relative to the parameter domain, while the endpoints are unaffected. In contrast, a <B-spline> of order $k$ has <support> within $[t_i,t_{i+k}]$ in its <spline knot> sequence, so its handle affects only that parameter range; the <support and Gram bandwidth of B-splines> describes the same locality in another application. Changing the <spline knots> or the <basis> along with the handle requires a different comparison.

When the <basis> functions form a <partition of unity>, $\sum_j b_j(t)=1$, each evaluation is an <affine combination> of the <control points>. Applying an <affine map> $T(x)=Ax+a$ to all handles gives
$$
\sum_j b_j(t)T(P_j)=A C(t)+a=T(C(t)).
$$
This is <affine equivariance of a geometric basis>, also called affine covariance: <affine maps preserve affine combinations>. In particular, translating every handle by $h$ translates the whole <curve> by $h$, whereas moving just one handle produces $b_i(t)h$. The <Bernstein basis> has this <partition of unity> property.<Curves and Surfaces in Geometric Modeling: Theory and Algorithms by Jean Gallier>[§4.3, pp. 132–133: Bernstein weights sum to one]{ref} Nonnegative weights further make evaluations <convex combinations>, giving the <convex hull> bound illustrated by the <control polygon>; nonnegativity is not needed for affine covariance.

For a proof outline of the influence formula, subtract the two <basis> representations: every unchanged <coefficient> cancels, leaving $b_i(t)(P_i+h)-b_i(t)P_i=b_i(t)h$. The same subtraction with several moved handles gives $\Delta C(t)=\sum_i b_i(t)h_i$. No claim about <interpolation>, <closest-point search on a subdivision curve> or endpoint motion follows until the actual <basis> values are examined.