[Math] How to draw a Bézier Curve through a set number of points

bezier-curveparameter estimationparametricparametrization

For high school Mathematics Pre-Specialist, I have been given the task of writing a mathematical investigation based on the following three questions:

Quadratic Bezier curve enables a smooth curve to be drawn through two points . In the example that you have considered the smooth curve passed through points A and C with point B being the control point that determines the shape of the curve.
The parametric equations for these bezier curves will be quadratics (ie they involve the parameter squared)
1. Draw at least 3 Bézier curves for different positions of the control point B using the same end points A (-3,4) and C (4,-6) and include the curves in your report.
• Show how the parametric equations for these curves were developed.
• What properties do all of these curves have in common?
• Explain how the position of the control point changes the shape of the curve.
A Quadratic Beziér curve can be used to construct a smooth curve to connect two line segments, in this case the control point will be the intersection point of the two line segments extended.
2. Sketch the line segments given below
• AB y=2x+1 0

Since we have been studying Vectors and this Bézier Curve assignment is merely a side project, I have no idea how to complete it. The questions appear to make sense, so my biggest problem is likely to be drawing a Bézier Curve through, say, two points. I've been trying to do this in Geogebra, but to no avail. How can it be done?

Best Answer

The great thing about Bezier curves is their simplicity. To draw a curve through $A,B,C$, you take $$ g(t) = (1-t)^2 A + 2t(1-t) B + t^2 C $$ For $t = 0$, this gives $A$; for $t = 1$, you get $C$, and for $t = 0.5$, you get $A/4 + B/2 + C/4$, i.e., the average of $B$ with the midpoint of $AC$.

To make that concrete, you have to know what I mean by something like $0.2 A$. What I mean is this: If $A = (x, y)$, then by $0.2A$ I mean $(0.2 x, 0.2 y)$, i.e., term by term multiplication by the constant. You also need to know what I mean by adding points: I mean term-by-term addition.

There's a lovely geometric construction, too:

For any value $t$, you can find a point $t$ of the way from $A$ to $B$ by computing $(1-t)A + tB$. When $t = 0$, this gives $A$; when $t = 1$, it gives $B$. This is the first-order Bezier curve with two control points. The cool thing is that to compute the 2nd-order curve with three points, $A,B,C$, you do the following:

  1. Go $t$ of the way from $A$ to $B$; call that $P$
  2. Go $t$ of the way from $B$ to $C$; call that $Q$
  3. Go $t$ of the way from $P$ to $Q$; call that $R$.

Then $R$ is what I've called $g(t)$ above. It depends on $t$; as you vary $t$ from $0$ to $1$, $R$ traces out a Bezier curve from $A$ to $C$, passing near $B$.

Here's an alternative that's quite surprising (to me at least): Starting with a two-segment polyline, from $A$ to $B$ to $C$, you can do the first two parts of the construction above for $t = 0.5$, so that $P$ is the midpoint of $AB$, and so on. You end up with six points: $A, B, C, P, Q, R$. And from these, you can draw a polyline through $A, P, R, Q, C$, i.e., a four-segment polyline.

Now considering $A, P, R$ and $R, Q, C$ as starting points, and do this again (i.e., treat each group as the control points for a Bezier curve, and apply the $t = 0.5$ subdivision to it to get a polyline with even shorter edges. You end up with 8 edges. Repeat again, and again...and the results will converge to a set of points on the "true" quadratic Bezier curve defined by $t \mapsto g(t)$.

Related Question