Bézier curve 2026-10-14
A Bézier curve is a parametric curve specified by control points in a Euclidean space and the Bernstein basis:
Here is a binomial coefficient. Each coordinate is a polynomial of polynomial degree at most ; special choices of control points can lower the polynomial degree. The ordered control points form the control polygon. A cubic Bézier curve uses four control points and has the explicit form
The curve passes through and ; the interior control points steer its shape and need not lie on it.[ref]
For a worked example, choose
Substituting these control points gives
Here , so neither interior control point, both at height , lies on the curve. De Casteljau's algorithm computes the same point using only successive linear interpolations.
The endpoint tangent vectors follow from the Bézier derivative control polygon:
Thus the curve leaves toward and arrives at from . These nonzero derivatives determine the endpoint tangent lines; if an endpoint derivative vanishes, that formula alone does not determine its tangent direction. Endpoint handles are useful when arranging a parametric first-derivative join of Bézier curves.
The parameter is usually not arc length. For this example,
Equal steps in therefore do not generally travel equal distances. Distance along the curve is instead the arc length, given by the integral ; its derivative is the norm of the tangent vector and measures the rate of travel.
Two geometric facts make Bézier curves especially convenient for design. First, the Bernstein basis weights are nonnegative and form a partition of unity, since the binomial theorem gives . Hence is a convex combination of the control points and lies in their convex hull.[ref] The convex hull is the smallest convex set containing the control points, not their axis-aligned bounding box. Here it is a trapezoid, strictly smaller than : the box corner is outside the convex hull. The curve need not fill or touch every edge of either enclosure. The convex hull guarantee concerns ; outside that interval weights can be negative.
Second, applying an affine map to every control point gives exactly the same result as applying it to the entire curve. For ,
This is affine equivariance of a geometric basis: a translation, rotation or shear mapping can be performed on a handful of control points. For example, transforms the four control points to and transforms the midpoint to , also obtained from the same weights .
These editable handles explain the usefulness of Bézier curves in computer aided geometric design, vector graphics paths and outline fonts: a small collection of points controls an entire smooth stroke, and resizing the design preserves its mathematical shape. Cambridge's computer-graphics notes describe their use in graphic design, typography and PostScript outlines. The industrial context includes Pierre Bézier's work at Renault and Paul de Casteljau's work at Citroën.[ref]
// Target: analysis.bigb
Bézier derivative control polygon Created 2026-10-14 Updated 2026-10-31
For a degree- Bézier curve, the th derivative has degree at most and control points . The first derivative follows by differentiating the Bernstein basis and shifting one summation index; iteration proves the general formula. A parameter interval of length multiplies these derivative controls by .
Bounding volume 2026-10-14
A bounding volume is a simple enclosing set for an object : every point of belongs to . Its purpose is to make a cheap rejection possible before examining the object itself. For example, an axis-aligned bounding box can enclose a triangle using just its smallest and largest coordinates.
The guarantee is one-sided. If and , then
Thus an empty set intersection of the bounding volumes certifies an empty set intersection of the objects. An overlap of the bounding volumes is necessary for actual intersection, but does not prove it. This is a conservative enclosure test: rejection is conclusive, acceptance means further examination is needed.
Consider the filled triangles with vertices of a polygon and with vertices of a polygon . Their axis-aligned bounding boxes overlap in . Nevertheless, every point of satisfies , whereas every point of satisfies . The two triangles are disjoint. The shaded square in the bounding volume hierarchy illustration makes this false candidate visible.
For collision detection, a broad phase produces possible object pairs from bounding volume tests; a narrow phase examines the actual shapes, for example with a triangle-triangle intersection algorithm. Scott Le Grand's Chapter 32. Broad-Phase Collision Detection with CUDA explains this separation in its opening paragraphs. Whether touching counts as a collision must be specified by the application.
An enclosure must cover the entire object being queried. A box fitted to samples of a parametric curve only guarantees enclosure of the sampled points, unless a separate bound covers the whole parametric curve. For a Bézier curve, the convex hull of its control points provides such a bound on its defining parameter interval. In floating-point arithmetic, outward rounding can preserve certified coordinate bounds; an inward roundoff error can invalidate a rejection. Bounds must also be updated when objects move.
Control point Created 2026-10-14 Updated 2026-10-14
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.[ref]
For example, use the cubic Bézier curve with control points
Its Bernstein basis representation gives
The greatest height is , so neither interior control point, both at height , lies on this curve. The endpoint control points do lie on it: and . 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.
Figure 1.
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
. Details.
Now move only by the vector , giving . With the Bernstein basis and parameter unchanged, the new curve is
At this gives , a displacement despite moving the handle by a full unit. Both endpoints stay fixed because the coefficient 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.
For a parametric curve represented by fixed scalar functions and control points in Euclidean space, write
The influence function of this handle is : the resulting displacement vector is , and its norm is . These are exact finite changes, not only a first-order estimate. Where is negative the displacement points opposite to . Where , the curve is unchanged at that parameter.
Figure 1.
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
. Details.
For the cubic Bézier curve above, the Bernstein basis influence function is . Its derivative is
It increases up to and decreases thereafter on . Consequently the largest displacement at corresponding parameters is
For it is . 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:
The closest parameter can differ from , so 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 is the closure of the parameter values where . 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 is all of relative to the parameter domain, while the endpoints are unaffected. In contrast, a B-spline of order has support within 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, , each evaluation is an affine combination of the control points. Applying an affine map to all handles gives
This is affine equivariance of a geometric basis, also called affine covariance: affine maps preserve affine combinations. In particular, translating every handle by translates the whole curve by , whereas moving just one handle produces . The Bernstein basis has this partition of unity property.[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 . The same subtraction with several moved handles gives . No claim about interpolation, closest-point search on a subdivision curve or endpoint motion follows until the actual basis values are examined.
Cubic B-spline Bézier extraction Created 2026-10-14 Updated 2026-10-31
For the unit-spaced cubic cardinal B-spline on , the four scalar cubic Bernstein basis coefficient rows are , , and . Each row applies on its interval with local parameter in . They result from the compactly supported truncated-cube combination . Each graph piece is a cubic Bézier curve with abscissa controls .
De Boor point 2026-10-31
A de Boor point is a control point in a B-spline representation. For a degree-two uniform segment with three active de Boor points , the equivalent Bézier curve handles are . The next segment shares and introduces one new handle. This formula assumes simple equally spaced spline knots; clamped or repeated spline knots have different endpoint conversions.
De Casteljau's algorithm 2026-10-14
De Casteljau's algorithm evaluates a Bézier curve by repeated linear interpolation between neighboring control points. Fix , start with , and compute
Each new row has one fewer point. The final point is . Use the same at every stage: it describes the fraction of each line segment traversed from its first endpoint toward its second. A cubic Bézier curve needs three levels containing , , and linear interpolations, respectively.[ref]
For the Bézier curve with control points , , , , evaluation at takes the midpoint of every neighboring pair. The first level gives
The second level gives
and the third level gives
The intermediate control polygons shrink toward the evaluated point. Each step is a convex combination, giving a geometric explanation of the convex hull property; every step also commutes with an affine map.
Figure 1.
Cubic Bézier curve, its convex hull and bounding box, and the three levels of De Casteljau's algorithm at t = 1/2
. Details.
The same construction splits the Bézier curve exactly, with no approximation. The outer edges of the triangular array give the new control points: for a cubic, specify the left piece and specify the right piece.[ref] At these two lists are
Write and for the Bézier curves defined by these lists, each with its own parameter . Then
Their images reproduce the original curve, while their derivatives account for the shorter parameter intervals. At the join,
The chain rule gives ; in the original parameter, both pieces have derivative . This is the interval scaling in the parametric first-derivative join of Bézier curves.
Figure 2.
Exact midpoint subdivision with two smaller control polygons, endpoint tangent directions, and equally spaced parameter samples
. Details.
Repeated midpoint splitting is useful for drawing vector graphics paths: each piece has a smaller control polygon and its own convex hull enclosure. A renderer can refine pieces until they are sufficiently close to line segments at the chosen display scale. Evaluating and splitting it are thus two results of the same short algorithm.
For a proof outline, expanding the recursion gives
Pascal's identity proves this by induction; at , it is precisely the Bernstein basis formula for the Bézier curve. The geometric construction remains useful even when expanding the polynomial by hand would be cumbersome.
// Target: analysis.bigb
Knot insertion 2026-10-14
Knot insertion refines the spline knot sequence and changes the control points without changing the represented B-spline. Repeated insertion exposes local Bézier curves and provides subdivision-based evaluation.
// Target: analysis.bigb
Outline font 2026-10-13
An outline font stores glyph shapes as geometric boundaries that can be scaled before drawing. Bézier curves provide editable segments of these boundaries. TrueType outlines use quadratic Bézier curves; Type 2 charstrings used in Compact Font Format outlines use cubic Bézier curves. [ref] [ref]
Two adjacent Bézier curves of degrees and interval lengths have a join precisely when their endpoint positions and their derivatives in the common parameter agree. Parallel endpoint polygon edges alone give tangent-direction agreement; their scaled vectors must be equal for parametric first-derivative continuity.
For a fixed , De Casteljau's algorithm first takes the same fractional position along both adjacent sides of the control polygon:
It then applies another linear interpolation with that same :
This is the degree-two Bernstein basis representation of a quadratic Bézier curve. Its coordinate polynomials are
The degree is exactly two, since its second derivative is nonzero. As a check on the construction, at the two intermediate points are and and their midpoint is .
Three useful geometric properties, with their concrete consequences here, are:
These give the compact answer
The same sum-to-one calculation also explains affine equivariance of a geometric basis: applying an affine map to the handles applies that map to the curve.
Choose a quadratic uniform B-spline segment on a unit spline knot interval. This choice is useful because adjacent pieces can later share de Boor points at simple, equally spaced spline knots. Its three active basis pieces on local are
They follow from the Cox-de Boor recurrence for degree two and consecutive integer spline knots. If the three de Boor points are , then the equivalent Bézier curve handles are
One can verify this conversion simply by substituting these expressions into the Bernstein basis formula and collecting each . Solving gives
The desired matrix representation is therefore
The left row is again the monomial row, the middle matrix contains the monomial coefficients of , and the right matrix lists the de Boor points. Unlike the Bézier curve basis matrix, the constant row averages two handles. A clamped B-spline with repeated end spline knots could instead reuse directly; the simple uniform convention above specifies which representation is being used and supplies the shared handles required for the extension.
Rotating the geometry through sends every point to . To start the extension at the origin, also reverse the parameter:
Then and . Merely using would trace the same rotated image toward the origin, instead of away from the join.
The reversed and rotated de Boor points are , namely . The first two are already , so there is only one new de Boor point, . Using the same uniform basis matrix,
Equivalently, the Bézier curve handles are , and , which gives the same polynomials immediately.
A solid body transform is a rigid transformation: it preserves distances within the object. In three-dimensional coordinates it has the form , with translation and an orthogonal matrix . For a proper physical rotation, the coefficient constraints are
Equivalently the columns of are an orthonormal basis with positive orientation. A reflection also preserves distance but has and is excluded when “solid-body motion” means a rotation and translation. There are three rotational and three translational degrees of freedom, not twelve independent matrix coefficients.
Computationally use the homogeneous coordinates representation
The last row is ; matrix multiplication composes transforms. Alternatively store a unit quaternion together with , maintaining its unit norm. A transpose gives the rotational inverse: .
Write the cubic Bézier curve as , where . The binomial theorem gives . Transforming the controls produces
This proves pointwise equivariance, including the original parameter values; it is stronger than a statement that the two curves merely have the same shape.
Orthogonality was not used in the calculation. The identical proof applies to every affine map , including scales, shears and even singular affine maps. It applies to every representation with scalar, control-independent partition of unity basis functions: Bézier curves of every degree, B-splines, surfaces built on a tensor-product surface basis, triangular Bézier patches, and more general linear control-point representations. Positivity is not needed for affine equivariance of a geometric basis. For linear stationary subdivision matrices with row sums one, each refinement step commutes with the affine transformation; taking a convergent limit proves the corresponding assertion for subdivision curves and subdivision surfaces. Rules with geometry-dependent nonlinear weights require separate equivariance tests and are not covered automatically.
The affine class is the largest class that preserves every such Euclidean-control construction with unchanged basis weights, under the usual continuity assumption. In fact the degree-one case would force
for all and . This segment identity, followed by continuity, forces to be affine. Nonlinear transforms such as perspective division generally fail it.
There is a further extension when the representation itself is enlarged: apply a projective transformation linearly to homogeneous controls , then dehomogenize the weighted sum. The transformed objects are rational Bézier curves or non-uniform rational B-splines, with transformed weights as well as transformed Euclidean controls. This works wherever the new denominator is nonzero. It does not assert projective invariance of ordinary polynomial Bézier curves with their old weights.
A subdivision curve interrogation interface provides its control/topology data, a parameter interval or address, and a refinement operation returning restricted child pieces with their parameter correspondence. It also provides a certified enclosing bounding volume, endpoints or limit-point enclosures, and an error estimate for replacing a sufficiently small piece by its chord. Positional and derivative limit queries may be implemented by refinement or by conversion to the appropriate spline. Nonnegative masks often imply a control-point convex hull bound; a generic scheme with negative weights needs a separate bound.
These enquiries can be applied to a parametric curve by using interval restriction as the subdivision operation and constructing its enclosure from its representation. For example, a Bézier curve is split by De Casteljau's algorithm, and each child's control-point convex hull encloses exactly that child arc. More generally, if a restricted curve has a certified bound , the midpoint supplies
This ball gives a signed plane-range enclosure. Such an upper derivative bound must be supplied or proved; taking the largest derivative seen in a few samples is not a certificate.
The recursive intersection algorithm is as follows. Start with the whole domain. For each piece with enclosure , compute
If or , discard that piece. Otherwise split it and process the children, unless a root has already been uniquely isolated and can be polished as in Question 3. For a convex hull bound, the extrema of this affine plane function are attained among its control points, so only dot products are required. For an axis-aligned bounding box, choose the low or high coordinate in each term according to the sign of .
At a small flat piece, the chord-plane parameter is
when the denominator is nonzero. It supplies an initial estimate, which is corrected on the actual curve. A chord of a piece with geometric error gives plane-function error at most ; a transverse root additionally needs a positive derivative lower bound to convert that into a parameter error. A chord hit is not by itself a proof of the exact crossing count. Keep unresolved tangent contacts, merge shared-endpoint hits, and return any certified coplanar parameter intervals separately.
Good speed comes from a bounding volume hierarchy, conservative cheap rejection before accurate evaluation, caching shared subdivision work, local rather than uniform refinement, and fast root polishing only after isolation. Convex-hull or box extrema cost far less than solving every potential intersection. Tight bounds shrink rapidly with subdivision and reduce the active search to neighborhoods of actual crossings. Derivative information can prove monotonicity, accelerate with the Newton root-finding iteration, or tighten range bounds using interval arithmetic. There is no universal fixed speed guarantee when the curve is nearly coplanar or has arbitrarily many intersections: those are genuinely difficult inputs. The representation must provide meaningful bounds and restriction operations; point/derivative enquiries alone do not imply such capabilities.
Scale the equal intervals to unit length. A nonzero compactly supported cubic B-spline with maximum continuity is , so its fourth derivative is a sum of impulses at the knots. Equivalently it is a combination of truncated cubes,
To vanish to the right of its support, the polynomial tail must be identically zero. Expanding that tail requires for . Four or fewer distinct knots give a full-rank Vandermonde matrix and only the zero solution. Hence a nonzero function requires at least five knots, or four intervals. At knots , the one-dimensional nullspace has coefficients proportional to . The unscaled combination integrates to six on , so unit-integral cardinal normalization gives:
This is the Cardinal cubic B-spline, nonnegative with support . To obtain its cubic B-spline Bézier extraction, use local parameter on interval . The four power-form numerators, with a common divisor six, are
For , the cubic Bernstein basis coefficients are , , , . Applying this conversion gives
Each scalar row describes a cubic Bézier curve graph piece with abscissa controls . The truncated-cube construction proves value, first- and second-derivative agreement at all joins, including the zero exterior. Minimum support and maximum continuity determine the basis up to a scalar; the displayed normalization fixes that remaining freedom.
A degree- B-spline basis keeps the positive partition of unity and convex hull properties while introducing local support. At a generic parameter value, only consecutive basis functions are nonzero. Moving one control point therefore changes only its support interval, unlike a generic interior Bézier curve control, which affects the whole polynomial segment.
Many low-degree pieces can represent a long curve with automatic continuity. At a knot of multiplicity , the generic continuity is ; simple cubic knots give . Knot positions and multiplicities control the placement of detail and joins. Knot insertion can refine the representation without changing the curve, and local refinement avoids raising the global polynomial degree. Thus B-splines combine geometric bounds, local editing and controlled smoothness with a fixed low degree. Clamped end knots can also give endpoint interpolation.