Bézier curve approximating the intersection between a cone and a plane.

calculusconic sectionscurvesgeometry

I've been trying to fine a nice way to visualise projecting a parabola to a circular arc, but I realise I don't actually know how to derive the functions necessary to show projecting a parabola through its plane onto the base plane of the conic it lies on…

I started with the following geometric setup:

a parabolic conic section

In this, we have a 3D space with an origin $P_2=(0,0,0)$, and a cone with base radius $r$ and height $h$, effecting a conic angle $\phi$. There is a plane at the same angle, shifted along the x-axis by $d$, and as such the intersection of the plane and the cone is a parabolic conic section, with points $A$ and $C$ the intersection points of the plane and the conic base and point $B$ the parabola's extremum.

From the geometry, it is clear that every point on the parabola can be projected from $P_2$ through the parabolic plane onto the conic base plane to yield a circular arc (after all, the cone itself is that projection) but I have no idea how to turn this into the form of a function.

I figured I could represent the parabola as a 3D rational quadratic Bezier curve, with start point $A$ and end point $C$, and a control point $B'=\{ 0, r-d, \frac{r-d}{r}h \}$, and then vary the rational weight for point $B$ to "slide" the parabola along the cone, but that does not appear to be what happens when you adjust that value.

So my question is: given this geometry, and given the parabola as a Bezier curve, how would I go about turning that into a "projective" Bezier curve function that takes the coordinates $A$, $B$, and $C$, and the angle $\phi$, yielding the conic section described by the intersection of the cone and a plane passing through $A-C$ at angle $\phi$?

(E.g. at $\phi=0$ this would be a circular arc, at $\phi=\frac{\pi}{2}$ a triangle, and anywhere in between some form of non-parabolic elliptical arc)

Best Answer

One reason why your idea might not have panned out is that the point $B'$ in your question is the parabola’s vertex, so it doesn’t even work as the control point for a Bézier parameterization of the original parabola: even for a rational Bézier curve the middle control point never lies on the curve. The correct middle control point for a Bézier parameterization of the parabola can be found by intersecting the tangent planes to the cone at $A$ and $C$ with the plane that generates the parabola. We can thus find that with $$A = \left(2\sqrt{d(r-d)},r-2d,h\right) \\ B = \left(0,r,\frac hr(r-2d)\right) \\ C = \left(-2\sqrt{d(r-d)},r-2d,h\right)$$ the Bézier curve $$(1-t)^2A+2t(1-t)B+t^2C \tag1$$ matches the parabola. For $0\le t\le1$, we get the arc through the vertex with endpoints $A$ and $C$. (This orientation might not match your diagram exactly.)

Going back to your idea of projecting the parabola onto a variable plane through $A$ and $C$, we observe that since the center of the projection is the origin, if a point $P$ has a finite projection onto the plane then it is a scalar multiple of $P$ and so can be expressed as $P'=c(P)P$. Note that this scalar $c$ depends on $P$, and, of course, on the image plane. By construction, $A$ and $C$ are their own images, so the projection of the curve (1) is $$(1-t)^2A+2t(1-t)c(B)B+t^2C. \tag2$$ Comparing the rational Bézier parameterization $${(1-t)^2w_1P_1+2t(1-t)w_2P_2+t^2w_3P_3 \over (1-t)^2w_1+2t(1-t)w_2+t^2w_3}$$ to (2) suggests setting $w_1=w_3=1$ and since we’d like the control point to lie on the curve’s plane, $w_2=1/c(B)$ seems like a reasonable guess, leading to $${(1-t)^2A + 2t(1-t)B'/c(B)+t^2C \over (1-t)^2+2t(1-t)/c(B)+t^2}. \tag3$$

Parameterizing the variable plane by the angle $\phi$ between its normal and the positive $z$-axis, we have for an equation of the plane $$y\sin\phi+z\cos\phi=h\cos\phi+(r-2d)\sin\phi$$ and we can find $$B' = {r(h\cos\phi+(r-2d)\sin\phi) \over h(r-2d)\cos\phi+r^2\sin\phi}B.$$ I’ll leave verifying that using these values of $B'$ and $w$ do indeed produce a parameterization of the intersection curve, which involves some tedious but straightforward algebra.

Observe that, instead of sliding the vertex along the cone as you proposed, we are effectively sliding the parabola’s control point $B$ along the line through it and the origin. Parameterizing this family of curves by $c(B)$ as in (3) instead of the plane’s normal angle makes this relationship more transparent, I think.

Here, for example, is what results with $h=3$, $r=1$, $d=1/4$ and $\phi=\pi/4$:

Rational Bézier

The black arc is the above rational Bézier curve for $0\le t\le1$.