Conic Sections

Needs["Graphics`Colors`"]
Off[ParametricPlot3D::ppcom]

Clear[cone, r, theta];
cone = ParametricPlot3D[{r Cos[theta], r Sin[theta], r},
                    {theta, 0, 2 Pi}, {r, -4, 4},
                    DisplayFunction->Identity];

The four conic sections are the circle, the ellipse, the parabola, and the hyperbola. These shapes are called "conics" because they can be obtained by intersecting a right double cone (shown below) with a plane.

The Double Cone:

Show[cone, PlotRange->{{-4, 4}, {-4, 4}, {-4, 4}},
           DisplayFunction->$DisplayFunction];

Circles

If a double cone is intersected with horizontal planes, the intersection between the plane and the double cone will be a circle. There is one exception. What is this exception?

Clear[x, y, n, plane, conic1, theta, isoview, topview];
Do[                        
plane = ParametricPlot3D[{x, y, n},
                         {x, -4, 4}, {y, -4, 4},
                         DisplayFunction->Identity];
                         
conic1 = ParametricPlot3D[Append[{n Cos[theta], n Sin[theta],
                                  n + .03},
                         {Red, Thickness[0.02]}],
                         {theta, 0, 2 Pi},
                         DisplayFunction->Identity];

isoview = Show[cone, plane, conic1,
               PlotRange->{{-4, 4}, {-4, 4}, {-4, 4}},
               DisplayFunction->Identity];
topview = Show[cone, plane, conic1,
               PlotRange->{{-4, 4}, {-4, 4}, {-4, 4}},
               ViewPoint->{0, 0, 3.5},
               DisplayFunction->Identity];
 Show[GraphicsArray[{isoview, topview}],
      DisplayFunction->$DisplayFunction],
{n, -1, 3}];

The view on the right is the TOP view.

Ellipses

If the plane is inclined at an angle to the horizontal, the intersection will be an ellipse as long as the angle of inclination of the plane is less than the base angle of the cone.

Clear[r, y, n, plane, isoview, topview]
Do[
plane = ParametricPlot3D[{r Cos[n Pi/18], y,
                          r Sin[n Pi/18] + 2},
                         {y, -4, 4}, {r, -5.6, 5.6},
                         DisplayFunction->Identity];

isoview = Show[cone, plane,
               PlotRange->{{-4, 4}, {-4, 4}, {-4, 4}},
               DisplayFunction->Identity];
               
topview = Show[cone, plane,
               PlotRange->{{-4, 4}, {-4, 4}, {-4, 4}},
               ViewPoint->{0, 0, 3.5},
               DisplayFunction->Identity];
                         

Show[GraphicsArray[{isoview, topview}],
      DisplayFunction->$DisplayFunction],
      
   {n, -2, 3}]

The view on the right is the TOP view.

Ellipses II

Here, the plane is moved up and down without rotation.

Clear[r, y, n, plane, isoview, topview]
Do[
plane = ParametricPlot3D[{r Cos[n Pi/18], y,
                          r Sin[Pi/9] + n},
                         {y, -4, 4}, {r, -5.6, 5.6},
                         DisplayFunction->Identity];

isoview = Show[cone, plane,
               PlotRange->{{-4, 4}, {-4, 4}, {-4, 4}},
               DisplayFunction->Identity];
               
topview = Show[cone, plane,
               PlotRange->{{-4, 4}, {-4, 4}, {-4, 4}},
               ViewPoint->{0, 0, 3.5},
               DisplayFunction->Identity];
                         

Show[GraphicsArray[{isoview, topview}],
      DisplayFunction->$DisplayFunction],
      
   {n, -.5, 2, .5}]

The view on the right is the TOP view.

Parabolas

If the angle of inclination of the plane is equal to the base angle of the cone, the intersection will be a parabola.

Clear[r, y, n, plane, isoview, topview]
Do[
plane = ParametricPlot3D[{r Cos[Pi/4], y,
                          r Sin[Pi/4] + n},
                         {y, -4, 4}, {r, -5.6, 5.6},
                         DisplayFunction->Identity];

isoview = Show[cone, plane,
               PlotRange->{{-4, 4}, {-4, 4}, {-4, 4}},
               DisplayFunction->Identity];
               
topview = Show[cone, plane,
               PlotRange->{{-4, 4}, {-4, 4}, {-4, 4}},
               ViewPoint->{0, 0, 3.5},
               DisplayFunction->Identity];
                         

Show[GraphicsArray[{isoview, topview}],
      DisplayFunction->$DisplayFunction],
      
   {n, -.5, 2, .5}]

The view on the right is the TOP view.

Hyperbolas

If the inclination angle of the plane is greater than the base angle of the cone, the plane will intersect the double cone in two disjoint curves. These curves make up a hyperbola. It is easiest to see the hyperbola if the plane is vertical.

Clear[z, y, n, plane, conic1, conic2, isoview, sideview]
Do[                        
plane = ParametricPlot3D[{n, y, z},
                         {y, -4, 4}, {z, -4, 4},
                         DisplayFunction->Identity];
                         
conic1 = ParametricPlot3D[Append[{n, y, Sqrt[n^2 + y^2]},
                         {Red, Thickness[0.02]}],
                         {y, -4, 4},
                         DisplayFunction->Identity];
conic2 = ParametricPlot3D[Append[{n, y, -Sqrt[n^2 + y^2]},
                         {Red, Thickness[0.02]}],
                         {y, -4, 4},
                         DisplayFunction->Identity];

isoview = Show[cone, plane, conic1, conic2,
               PlotRange->{{-4, 4}, {-4, 4}, {-4, 4}},
               DisplayFunction->Identity];
sideview = Show[cone, plane, conic1, conic2,
               PlotRange->{{-4, 4}, {-4, 4}, {-4, 4}},
               ViewPoint->{3.5, 0, 0},
               DisplayFunction->Identity];
 Show[GraphicsArray[{isoview, sideview}],
      DisplayFunction->$DisplayFunction],
{n, -1, 3}];

The view on the right is the SIDE view.

Hyperbolas II

In all the above examples, the plane was moved while the double cone was unchanged. What would happen if we change the cones?

Clear[z, y, n, plane, r, theta, cone2,
      conic1, conic2, isoview, topview]
      
plane = ParametricPlot3D[{1, y, z},
                         {y, -4, 4}, {z, -4, 4},
                         DisplayFunction->Identity];

Do[
cone2 = ParametricPlot3D[{r Cos[theta], r Sin[theta], n r},
                    {theta, 0, 2 Pi}, {r, -4, 4},
                    PlotRange->{{-4, 4}, {-4, 4}, {-4, 4}},
                    DisplayFunction->Identity];
                         
conic1 = ParametricPlot3D[Append[{1, y, n Sqrt[1 + y^2]},
                         {Red, Thickness[0.02]}],
                         {y, -4, 4},
                         DisplayFunction->Identity];
conic2 = ParametricPlot3D[Append[{1, y, -n Sqrt[1 + y^2]},
                         {Red, Thickness[0.02]}],
                         {y, -4, 4},
                         DisplayFunction->Identity];

isoview = Show[cone2, plane, conic1, conic2,
               PlotRange->{{-4, 4}, {-4, 4}, {-4, 4}},
               DisplayFunction->Identity];
sideview = Show[cone2, plane, conic1, conic2,
               PlotRange->{{-4, 4}, {-4, 4}, {-4, 4}},
               ViewPoint->{3.5, 0, 0},
               DisplayFunction->Identity];
 Show[GraphicsArray[{isoview, sideview}],
      DisplayFunction->$DisplayFunction],
{n, 1, 2, .2}]

The view on the right is the SIDE view.

Rotated Plane:

Finally, observe the intersection of the plane and the double cone as the plane rotates about the line z = 1.5 in the yz-plane.

Clear[r, y, n, plane, isoview, topview]
Do[
plane = ParametricPlot3D[{r Cos[n Pi/12], y,
                          r Sin[n Pi/12] + 1.5},
                         {y, -4, 4}, {r, -5.6, 5.6},
                         DisplayFunction->Identity];

isoview = Show[cone, plane,
               PlotRange->{{-4, 4}, {-4, 4}, {-4, 4}},
               DisplayFunction->Identity];
               
topview = Show[cone, plane,
               PlotRange->{{-4, 4}, {-4, 4}, {-4, 4}},
               ViewPoint->{0, 0, 3.5},
               DisplayFunction->Identity];
                         

Show[GraphicsArray[{isoview, topview}],
      DisplayFunction->$DisplayFunction],
      
   {n, 0, 6}]

The view on the right is the TOP view.