randRangeNonZero( -30, 30 ) / 10 randRange( -30, 30 ) / 10 randRange( -70, 70 ) / 10 function( x ) { return A*x*x + B*x + C; }

Identify this conic section.

graphInit({ range: 10, scale: 20, tickStep: 1, axisArrows: "<->" }); style({ stroke: "#6495ED" });
plot( FUNC, [-10, 10] );
Parabola
• Parabola
• Hyperbola
• Circle
• Ellipse

This graph has a vertex and is U-shaped. It extends to infinity on both ends.

That describes a parabola.

randRangeNonZero( -70, 70 ) / 10 randRangeNonZero( -70, 70 ) / 10 randRangeNonZero( -30, 30 ) / 10 randRangeNonZero( -30, 30 ) / 10 function( t ) { return [ A * cos( t ) + C, B * sin( t ) + D ]; }
plotParametric( PARA_FUNC, [-PI, PI] );
Ellipse

You can see that the graph resembles a squished circle.

This shape is an ellipse.

randRangeNonZero( -70, 70 ) / 10 A
Circle

This shape is perfectly round and symmetrical. All the points on it are equidistant from its center.

A circle has those properties.

randRangeNonZero( -40, 40 ) / 10 randRangeNonZero( -40, 40 ) / 10 function( t ) { return [ A / cos( t ), B * tan( t ) ]; }
// to steer clear of discontinuities, // split up the plotting and add some buffer area away from them plotParametric( PARA_FUNC, [-PI, -PI/2-0.1] ); plotParametric( PARA_FUNC, [-PI/2+0.1, PI/2-0.1] ); plotParametric( PARA_FUNC, [PI/2+0.1, PI] );
Hyperbola

This graph has two asymptotes which it approaches. It's also U-shaped on each side.

plot( function( x ) { return (B/A) * x; }, [-10, 10], { stroke: "gray" } ); plot( function( x ) { return (B/A) * -1 * x; }, [-10, 10], { stroke: "gray" } );

This conic section is therefore a hyperbola.