How do you find the vertex of a (Bézier) quadratic curve?

1.8k Views Asked by At

Before I elaborate, I do not mean a quadratic function! I mean a quadratic curve as seen here. With these curves, you are given 3 points: the starting point, the control point, and the ending point. I need to know how to find the vertex of the curve. Also, I am talking about Bézier curves, but just quadratic Bézier curves-the ones with only 3 points.

1

There are 1 best solutions below

1
On

A nice question! And it has a nice answer. I arrived at it by a series of hand-drawn sketches and scribbled calculations, so I don't have time right now to present the derivation. But here is the answer:

We are given three point $P_0$, $P_1$, and $P_2$ (the start-, control-, and end-points). The Bézier curve for these points is the parabola through $P_0$ and $P_2$ whose tangents at $P_0$ and $P_2$ coincide with the lines $P_0P_1$ and $P_1P_2$ respectively. It has the parametric form $$B(t) = (1-t)Q_0(t) + tQ_1(t)$$ where $$Q_0(t) = (1-t)P_0+tP_1$$ and $$Q_1(t)=(1-t)P_1+tP_2$$

Here is what you have to do to find the vertex of the parabola:

Complete the parallelogram $P_0P_1P_2P_3$ by setting $P_3 = P_0 + P_2 - P_1$. Find the parameter $t$ such that $P_0X(t)P_1$ is a right angle, where $X(t)$ is the point on $P_1P_3$ equal to $(1-t)P_1+tP_3$. Then the vertex of the parabola is the point $B(t)$.

Note that $t$ is not necessarily in $[0,1]$.

Briefly, the idea is that we follow the tangent $Q_0(t)Q_1(t)$ around the curve until the length $|Q_0(t')B(t')|$ is equal to the length $|P_0Q_0(t')|$. Then the symmetry dictates that the vertex of the parabola is reached when $t = t'/2$. You can obtain this value of $t$ by the above procedure.