Parabolas through three points

Solution 1:

The locus

After doing some computations in the spirit (and building on the code) of my vertex anser, I found the locus of $P$ to be a quadric

$$ a\,x^2 + b\,y^2 + c\,xy + d\,x + e\,y + f = 0 $$

with the following parameters:

\begin{align*} a&=4\left(-A_y\,B_y + B_y^2 + A_y\,C_y - B_y\,C_y\right)\\ b&=4\left(-A_x\,B_x + B_x^2 + A_x\,C_x - B_x\,C_x\right)\\ c&=4\left(A_y\,B_x + A_x\,B_y - 2\,B_x\,B_y - A_y\,C_x + B_y\,C_x - A_x\,C_y + B_x\,C_y\right)\\ d&=4\left(A_y\,B_x\,B_y - A_x\,B_y^2 + A_y\,B_y\,C_x - B_y^2\,C_x - 2\,A_y\,B_x\,C_y + A_x\,B_y\,C_y + B_x\,B_y\,C_y\right)\\ e&=4\left(-A_y\,B_x^2 + A_x\,B_x\,B_y + A_y\,B_x\,C_x - 2\,A_x\,B_y\,C_x + B_x\,B_y\,C_x + A_x\,B_x\,C_y - B_x^2\,C_y\right)\\ f&=A_y^2\,B_x^2 - 2\,A_x\,A_y\,B_x\,B_y + A_x^2\,B_y^2 - 2\,A_y^2\,B_x\,C_x + 2\,A_x\,A_y\,B_y\,C_x \\&\quad{} - 2\,A_y\,B_x\,B_y\,C_x + 2\,A_x\,B_y^2\,C_x + A_y^2\,C_x^2 - 2\,A_y\,B_y\,C_x^2 + B_y^2\,C_x^2 \\&\quad{} + 2\,A_x\,A_y\,B_x\,C_y + 2\,A_y\,B_x^2\,C_y - 2\,A_x^2\,B_y\,C_y - 2\,A_x\,B_x\,B_y\,C_y \\&\quad{} - 2\,A_x\,A_y\,C_x\,C_y + 2\,A_y\,B_x\,C_x\,C_y + 2\,A_x\,B_y\,C_x\,C_y - 2\,B_x\,B_y\,C_x\,C_y \\&\quad{} + A_x^2\,C_y^2 - 2\,A_x\,B_x\,C_y^2 + B_x^2\,C_y^2 \end{align*}

Assumption confirmed

Using this formulation, I could verify your assumption: the conic is indeed a hyperbola, with the lines $AB$ and $CB$ as asymptotes. The way to check this is by ensuring that the lines are tangents, and that they touch the conic at infinity.

Special location

In a comment below, you mention that you might assume $B_x=B_y=0$. With that your conic will become

\begin{align*} a&=4\,A_y\,C_y\\ b&=4\,A_x\,C_x\\ c&=-4\left(A_y\,C_x + A_x\,C_y\right)\\ d&=0\\ e&=0\\ f&=A_y^2\,C_x^2 - 2\,A_x\,A_y\,C_x\,C_y + A_x^2\,C_y^2 \end{align*}

The formula is indeed a lot easier, so it might be a good starting point for a geometric description of the curve. For example, it is readily apparent that this hyperbola will be symmetric around the origin. But we already knew $B$ to be the center due to the asymptotes. You can even take this one step further and, via an affine transformation, consider only the case where

\begin{align*} A &= \begin{pmatrix}1\\0\end{pmatrix} & B &= \begin{pmatrix}0\\0\end{pmatrix} & C &= \begin{pmatrix}0\\1\end{pmatrix} \end{align*}

You end up with the hyperbola

$$4xy=1$$

From this you can e.g. conclude that the midpoint between $A$ and $C$ will also lie on that hyperbola. It will of course correspond to a Bézier curve which passes through $B$ for some $t<0$ or $t>1$. You can take that midpoint and reflect it in $B$ to obtain a point on the segment of the hyperbola you get for $0\le t\le 1$. This construction is invariant under affine transformations, so it still holds for the general case. Two asymptotes plus one point on the hyperbola amounts to five real degrees of freedom, so this should be enough to uniquely define your hyperbola.

Summary

To sum it up: the locus of the apex $P$ is the unique hyperbola with asymptotes $AB$ and $CB$ which passes through the midpoint between $A$ and $C$. The portion of it which corresponds to parabolas where $B$ lies between $A$ and $C$, i.e. is obtained in the Bézier curve for $0<t<1$, is the component of the hyperbola which does not contain that midpoint. It does contain the point obtained by reflecting that midpoint in $B$.

The code

Here is the sage code I used to obtain this representation:

# Define multivariate polynomial ring and points
PR1.<A_x, A_y, B_x, B_y, C_x, C_y, P_x, P_y, t> = QQ[]
A = vector(PR1, [A_x, A_y, 1])
B = vector(PR1, [B_x, B_y, 1])
C = vector(PR1, [C_x, C_y, 1])
P = vector(PR1, [P_x, P_y, 1])

# Quadratic Bézier curve parametrized by t
Bt = (1-t)^2*A + 2*(1-t)*t*P + t^2*C
r1 = (Bt[0] - B_x).resultant(Bt[1] - B_y, t) # eliminate t

# Obtain coefficients for coordinates of P
c1 = vector(PR1, flatten([list(i.polynomial(i.parent()(P_y)))
                          for i in r1.polynomial(P_x)]))
f, e, b, d, c, a = c1

# Print result
fmt1 = [str(i/4).replace('*','\\,')
        for i in [a, b, c, d, e]] + [str(f)]
fmt2 = [i + '&=4\\left(' + j + '\\right)'
        for i, j in zip('abcdef', fmt1)]
fmt2[-1] = 'f&='+fmt1[-1]
print('\\\\\n'.join(fmt2))

# Check whether lines AB and CB are asymptotes of the Hyperbola
Hyperbola = Matrix([
  [2*a, c, d],
  [c, 2*b, e],
  [d, e, 2*f]])
def onConic(p, c=Hyperbola):
    return (p.row()*c*p.column())[0,0].is_zero()
asymptotes = [B.cross_product(p) for p in [A, C]]
infLine = vector(QQ, [0,0,1])
# asymptotes are tangents to the hyperbola:
assert(all(onConic(i, Hyperbola.adjoint()) for i in asymptotes))
# asymptotes touch the hyperbola at infinity:
assert(all(onConic(i.cross_product(infLine)) for i in asymptotes))

# The midpoint between A and C is on the hyperbola:
assert(onConic(A+C))

Originally I had more complicated code which did not rely on the interpretation as a Bézier curve. The result was the same, though.

Generalizing to rational case

Can we generalize to rational quadratic Bezier curves (i.e. to conic section curves that are not necessarily parabolas)?

A parabola has four real degrees of freedom. If you choose a non-rational Bézier curve, you have two real degrees of freedom, but with these you not only specify a parabola but also select a start point and an end point on that parabola, so the degrees of freedom match. A conic in general has five real degrees of freedom. So if you want it to pass through three given points, that still leaves a two-parameter family of corresponding conics. Therefore your locus will not be a single curve, but either the whole plane or some portion of it.

You can define a conic using five points through which it should pass. In addition to your $A,B,C$ you might use two more points, which you move close to the end points $A$ and $C$. By making them arbitrary close (i.e. computing some limit), you can use these control points to exactly and arbitrarily determine the direction of the tangents in $A$ and $C$. Therefore you can choose any point $P$ in the plance, and find a conic through $A,B,C$ which will have $P$ as its apex. In this sense, the whole plane will be your locus.

I'm not completely sure whether a rational Bézier curve can be defined in such a way that it passes through infinity, but I believe that to be the case. If not, then there might be cases where the resulting conic would be a hyperbola, and $A,B,C$ are not all three in the same of its components. This might result in a restriction to part of the plane.

Solution 2:

Some additional, relevant parabola geometry:

Parabola geometry

Here, $H$ is the "pole" of ("polar") $AB$, and $M$ is the midpoint of $AB$. Point $F$ is the focus of the parabola, and $PQ$ is its directrix (with $P$ and $Q$ respective projections of $A$ and $B$ onto that line). The focus-directrix definition of parabola tells us that $PA \cong FA$ and $QB\cong FB$; the reflection property implies that $HA$ and $HB$ bisect appropriate angles at $A$ and $B$.

Importantly, $HM$ determines the direction of the parabola's axis, so that $HM\parallel PA\parallel QB$. (One readily verifies this by studying the $y=x^2$ curve.) This tells us more about how $HM$ divides $\angle H$ (and also that $\angle AFC = 2\angle AHC$).

Fun facts: The parabola crosses $HM$ at the segment's midpoint; the tangent to the parabola at that point is parallel to $AB$. (Again, simply study the $y=x^2$ curve.)

All of this geometry ... and we haven't even considered point $C$! Constraining the parabola to meet $C$ ---that is, imposing the condition that $C$'s distance from $PQ$ equals $|FC|$--- is evidently what evokes the hyperbolic nature of the locus of $H$. So far, I have found this quite thorny to verify geometrically (and/or vectorially) in the general case; even transforming to the "nice" case (isosceles right $\triangle ABC$), the symbol crunching gets pretty intense ... and while a hyperbolic relation for $H$'s coordinates appears when the dust settles, the result remains unsatisfying. (Edit. A coordinate derivation appears below. The reason for the hyperbolic relation remains something of a mystery, however.)

Other notes

  • The hyperbola's transverse (conjugate) axis has length $\sqrt{a b}\cos\theta$ (respectively, $\sqrt{a b}\sin\theta$), where $a := |CA|$, $b := |CB|$, $\theta := \frac{1}{2}\angle ACB$. Thus, its focal radius is $\sqrt{ab}$.

  • (As shown in @Bubba's image, and mentioned his comment to @Achille's answer) $AB$ is tangent to the "other" branch of the hyperbola, with point of tangency $M$.

Here's an image showing the construction of the hyperbola (note that some point names have been re-purposed):

Hyperbola construction

We project $A$ and (the reflection in $C$ of $B$) $B^\prime$ to $P$ and $Q$ on the bisector of $\angle ACB$. Lifting $C$ into the (gray) semi-circle with diameter $PQ$ gives $R$, where $|CR|^2 = |CP||CQ| = a\cos\theta \cdot b\cos\theta$, so that $|CR| = \sqrt{ab}\cos\theta$. The (pink) circle about $C$ and through $R$ contains $S$ and $T$, the vertices of the hyperbola. Lifting $T$ into the asymptote $BB^\prime$ gives $U$, such that $|CU| = |CT|/\cos\theta = \sqrt{ab}$; and then the (green) circle about $C$ through $U$ contains the hyperbola's foci, $F$ and $G$.

Incidentally: From here, it's easy to verify that $M$ ---with coordinates $\left(\frac{a+b}{2}\cos\theta, \frac{a-b}{2}\sin\theta \right)$--- lies on the hyperbola $\frac{x^2}{ab\cos^2\theta}-\frac{y^2}{ab\sin^2\theta} = 1$, and (with a modicum of calculus) that $AB$ ---with slope $\frac{a+b}{a-b}\frac{\sin\theta}{\cos\theta}$ --- is tangent to the curve at that point.


More notes ...

Coordinates seem to suggest connections that I haven't quite grokked geometrically.

Take the original points to be $A(a \cos\theta, a\sin\theta)$, $B(b\cos\theta,-b\sin\theta)$, $C(0,0)$, with $H(h,k)$ the pole of polar $AB$. Midpoint $M$ of $AB$ has coordinates $$M = \left(\frac{a+b}{2}\cos\theta, \; \frac{a-b}{2} \sin\theta \right)$$

so that vector $\overrightarrow{MH}$ has components $$\overrightarrow{MH} = \left(h - \frac{a+b}{2}\cos\theta, \; k - \frac{a-b}{2} \sin\theta \right) =: (p, q)$$ that occur surprisingly-often in this analysis.

We can construct the focus $F$ of the parabola as follows: Lift the midpoints of $HA$ and $HB$ to points $A^\prime$ and $B^\prime$ on $MH$. By construction, $\triangle HAA^\prime$ is isosceles; since we've already noted that $\angle HAF \cong \angle MHA$, it follows that $\overleftrightarrow{AA^\prime}$ contains $F$; as does $\overleftrightarrow{BB^\prime}$, so that the focus is the intersection of these lines and has coordinates $$F = \frac{1}{2\;(p^2+q^2)}\left( \; 2 h k\;\left( q, p \right) + ( h^2 - k^2 - a b ) \;\left( p, -q \right) \; \right) $$

To construct directrix $\overleftrightarrow{PQ}$, recall that the midpoint of $HM$ lies on the parabola, and that the tangent line at that point is parallel to $AB$. Reflecting $F$ across that tangent line gives a point on $PQ$; and we know that $PQ \perp HM$, so $$\overleftrightarrow{PQ} : \quad 2 x p + 2 y q = h^2 + k^2 - a b \cos 2\theta$$

The squared distances from $C$ (the origin) to the focus and directrix are then $$|CF|^2 = \frac{ \left( h^2 - k^2 - a b \right)^2 + 4 h^2 k^2}{4\;(p^2+q^2)} \qquad\qquad |C,\;\overleftrightarrow{PQ}|^2 = \frac{\left( h^2 + k^2 - a b \cos 2\theta \right)^2}{4\;( p^2+q^2 )}$$

For $C$ to lie on the parabola, these values must match; therefore, $$4 h^2 \sin^2\theta - 4 k^2 \cos^2\theta = a b \sin^2 2\theta \quad \to \quad \frac{h^2}{a b \cos^2\theta} - \frac{k^2}{a b\sin^2\theta} = 1$$ as expected.

The trick to really understanding this situation, then, is properly interpreting how the geometry contributes to the coordinate formulas ... in particular, the formula for focus $F$. Of course, $(q,p)$ and $(p,-q)$ are simply transformations of $(p,q) = \overrightarrow{MH}$, and $p^2+q^2$ is the squared length of that vector; no mystery there. But what are the (very hyperbola-esque) multipliers $2hk$ and $h^2-k^2-a b$ trying to tell us? I don't know ...