evan's notes
cal 3discreteodeenv systems

On this page

  • Linear interpolation
  • Quadratic Bézier curves
  • Cubic Bézier curves
  • What the control polygon tells us

Intermediate Calculus

§9 Bézier Curves

Evan Luo · Oct 14, 2026

Intermediate Calculus

§9 Bézier Curves

Evan Luo5 days ago

4 min read

A Bézier curve turns a small set of control points into a smooth parametric path. The curve begins at the first control point and ends at the last. The control points in between pull on its shape without usually lying on the curve.

This is useful in computer-aided design because moving a control point changes the curve predictably while keeping the formula polynomial.

Linear interpolation

Let P0P_0P0​ and P1P_1P1​ be points with position vectors p0\mathbf p_0p0​ and p1\mathbf p_1p1​. The linear interpolation between them is

rP0P1(t)=(1−t)p0+tp1,0≤t≤1.\boxed{ \mathbf r_{P_0P_1}(t) =(1-t)\mathbf p_0+t\mathbf p_1, \qquad 0\le t\le1. } rP0​P1​​(t)=(1−t)p0​+tp1​,0≤t≤1.​

At the endpoints,

rP0P1(0)=p0,rP0P1(1)=p1.\mathbf r_{P_0P_1}(0)=\mathbf p_0, \qquad \mathbf r_{P_0P_1}(1)=\mathbf p_1. rP0​P1​​(0)=p0​,rP0​P1​​(1)=p1​.

The derivative is constant:

rP0P1′(t)=p1−p0.\mathbf r_{P_0P_1}'(t)=\mathbf p_1-\mathbf p_0. rP0​P1​′​(t)=p1​−p0​.

So this curve is exactly the line segment from P0P_0P0​ to P1P_1P1​, traversed in that direction as ttt increases.

Quadratic Bézier curves

Now take three control points P0,P1,P2P_0,P_1,P_2P0​,P1​,P2​. For each value of ttt, first interpolate along the two adjacent control-polygon edges:

q0(t)=(1−t)p0+tp1,q1(t)=(1−t)p1+tp2.\begin{aligned} \mathbf q_0(t)&=(1-t)\mathbf p_0+t\mathbf p_1,\\ \mathbf q_1(t)&=(1-t)\mathbf p_1+t\mathbf p_2. \end{aligned} q0​(t)q1​(t)​=(1−t)p0​+tp1​,=(1−t)p1​+tp2​.​

Then interpolate between those two moving points:

rP0P1P2(t)=(1−t)q0(t)+tq1(t).\boxed{ \mathbf r_{P_0P_1P_2}(t) =(1-t)\mathbf q_0(t)+t\mathbf q_1(t). } rP0​P1​P2​​(t)=(1−t)q0​(t)+tq1​(t).​

This repeated interpolation is the quadratic case of de Casteljau's construction. Expanding the formula gives

rP0P1P2(t)=(1−t)((1−t)p0+tp1)+t((1−t)p1+tp2)=(1−t)2p0+2t(1−t)p1+t2p2.\begin{aligned} \mathbf r_{P_0P_1P_2}(t) &=(1-t)\bigl((1-t)\mathbf p_0+t\mathbf p_1\bigr)\\ &\quad+t\bigl((1-t)\mathbf p_1+t\mathbf p_2\bigr)\\ &=\boxed{(1-t)^2\mathbf p_0+2t(1-t)\mathbf p_1+t^2\mathbf p_2}. \end{aligned} rP0​P1​P2​​(t)​=(1−t)((1−t)p0​+tp1​)+t((1−t)p1​+tp2​)=(1−t)2p0​+2t(1−t)p1​+t2p2​​.​

The coefficients are nonnegative on [0,1][0,1][0,1] and add to 111. Each curve point is therefore a weighted average of the control points.

The curve passes through its endpoints:

r(0)=p0,r(1)=p2.\mathbf r(0)=\mathbf p_0, \qquad \mathbf r(1)=\mathbf p_2. r(0)=p0​,r(1)=p2​.

Differentiate the expanded formula:

r′(t)=2(1−t)(p1−p0)+2t(p2−p1).\mathbf r'(t) =2(1-t)(\mathbf p_1-\mathbf p_0) +2t(\mathbf p_2-\mathbf p_1). r′(t)=2(1−t)(p1​−p0​)+2t(p2​−p1​).

At the start and end,

r′(0)=2(p1−p0),r′(1)=2(p2−p1).\mathbf r'(0)=2(\mathbf p_1-\mathbf p_0), \qquad \mathbf r'(1)=2(\mathbf p_2-\mathbf p_1). r′(0)=2(p1​−p0​),r′(1)=2(p2​−p1​).

So the curve leaves P0P_0P0​ in the direction of P1P_1P1​ and reaches P2P_2P2​ in the direction from P1P_1P1​ to P2P_2P2​. It generally does not pass through P1P_1P1​; that point guides the curve's tangent directions and shape.

Cubic Bézier curves

Four control points P0,P1,P2,P3P_0,P_1,P_2,P_3P0​,P1​,P2​,P3​ produce two overlapping quadratic Bézier curves:

rP0P1P2(t)andrP1P2P3(t).\mathbf r_{P_0P_1P_2}(t) \qquad\text{and}\qquad \mathbf r_{P_1P_2P_3}(t). rP0​P1​P2​​(t)andrP1​P2​P3​​(t).

Interpolating between them gives the cubic curve:

rP0P1P2P3(t)=(1−t)rP0P1P2(t)+trP1P2P3(t).\boxed{ \mathbf r_{P_0P_1P_2P_3}(t) =(1-t)\mathbf r_{P_0P_1P_2}(t) +t\mathbf r_{P_1P_2P_3}(t). } rP0​P1​P2​P3​​(t)=(1−t)rP0​P1​P2​​(t)+trP1​P2​P3​​(t).​

Substitute the two quadratic formulas and collect the control-point coefficients:

rP0P1P2P3(t)=(1−t)3p0+3t(1−t)2p1+3t2(1−t)p2+t3p3,0≤t≤1.\boxed{ \begin{aligned} \mathbf r_{P_0P_1P_2P_3}(t) ={}&(1-t)^3\mathbf p_0 +3t(1-t)^2\mathbf p_1\\ &+3t^2(1-t)\mathbf p_2 +t^3\mathbf p_3, \qquad 0\le t\le1. \end{aligned} } rP0​P1​P2​P3​​(t)=​(1−t)3p0​+3t(1−t)2p1​+3t2(1−t)p2​+t3p3​,0≤t≤1.​​

The cubic also begins at the first control point and ends at the last:

r(0)=p0,r(1)=p3.\mathbf r(0)=\mathbf p_0, \qquad \mathbf r(1)=\mathbf p_3. r(0)=p0​,r(1)=p3​.

Its endpoint derivatives are

r′(0)=3(p1−p0),r′(1)=3(p3−p2).\mathbf r'(0)=3(\mathbf p_1-\mathbf p_0), \qquad \mathbf r'(1)=3(\mathbf p_3-\mathbf p_2). r′(0)=3(p1​−p0​),r′(1)=3(p3​−p2​).

Thus P1P_1P1​ controls the initial tangent direction and P2P_2P2​ controls the final tangent direction. The curve normally passes through neither one.

Linear, quadratic, and cubic Bézier curves

Linear, quadratic, and cubic Bézier curvesThree panels show a line segment, a quadratic curve, and a cubic curve. Each curve follows the direction of its first control-polygon edge at the start and its final edge at the end. Interior control points guide the shape but generally do not lie on the curve.Linear
P0P_0P0​
P1P_1P1​
Quadratic
P0P_0P0​
P1P_1P1​
P2P_2P2​
Cubic
P0P_0P0​
P1P_1P1​
P2P_2P2​
P3P_3P3​

What the control polygon tells us

Joining consecutive control points makes the control polygon. It is not the curve, but it gives a quick geometric reading:

  • The first and last control points are endpoints of the curve.
  • The first polygon edge gives the starting tangent direction.
  • The last polygon edge gives the ending tangent direction.
  • Interior control points pull the curve toward themselves but are not interpolation points in general.
  • Repeated interpolation keeps the whole curve inside the convex hull of its control points.

The same recursive construction works for higher degrees. Cubics are especially common because four control points already provide useful control over position and endpoint tangents without making the polynomial too complicated.

Source: https://notes.ohevan.com/notes/intermediate-calculus/09-bezier-curves

© 2026 Evan Luo. All rights reserved.

Back to Intermediate Calculus

0 reads

·Last edited Today
  • newsletter

  • about me

  • sponsor

© 2026 Evan Luo. All rights reserved.