Finding the vertex, focus and directrix of a parabola
Problem – Find the vertex, focus and directrix of a parabola when the coefficients of its equation are given.
A set of points on a plain surface that forms a curve such that any point on that curve is equidistant from the focus is a parabola.
Vertex of a parabola is the coordinate from which it takes the sharpest turn whereas a is the straight line used to generate the curve.
The standard form of a parabola equation is . Given the values of a, b and c; our task is to find the coordinates of vertex, focus and the equation of the directrix.
Example –
Input : 5 3 2 Output : Vertex:(-0.3, 1.55) Focus: (-0.3, 1.6) Directrix: y=-198 Consult the formula below for explanation.
This problem is a simple example of implementations of formulae. Given below are the required set of formulae which will help us tackle the problem.
For a parabola in the formVertex:
Focus:
Directrix:
C++
#include <iostream> using namespace std; // Function to calculate Vertex, Focus and Directrix void parabola( float a, float b, float c) { cout << "Vertex: (" << (-b / (2 * a)) << ", " << (((4 * a * c) - (b * b)) / (4 * a)) << ")" << endl; cout << "Focus: (" << (-b / (2 * a)) << ", " << (((4 * a * c) - (b * b) + 1) / (4 * a)) << ")" << endl; cout << "Directrix: y=" << c - ((b * b) + 1) * 4 * a << endl; } // Driver Function int main() { float a = 5, b = 3, c = 2; parabola(a, b, c); return 0; } |
Java
// Java program to find the vertex, // focus and directrix of a parabola class GFG { // Function to calculate Vertex, // Focus and Directrix static void parabola( float a, float b, float c) { System.out.println( "Vertex: (" + (-b / ( 2 * a)) + ", " + ((( 4 * a * c) - (b * b)) / ( 4 * a)) + ")" ); System.out.println( "Focus: (" + (-b / ( 2 * a)) + ", " + ((( 4 * a * c) - (b * b) + 1 ) / ( 4 * a)) + ")" ); System.out.println( "Directrix:" + " y=" + ( int )(c - ((b * b) + 1 ) * 4 * a)); } // Driver Function public static void main(String[] args) { float a = 5 , b = 3 , c = 2 ; // Function calling parabola(a, b, c); } } // This code is contributed by // Smitha Dinesh Semwal |
Python 3
# Function to calculate Vertex, # Focus and Directrix def parabola(a, b, c): print ( "Vertex: (" , ( - b / ( 2 * a)), ", " , ((( 4 * a * c) - (b * b)) / ( 4 * a)), ")" , sep = "") print ( "Focus: (" , ( - b / ( 2 * a)), ", " , ((( 4 * a * c) - (b * b) + 1 ) / ( 4 * a)), ")" , sep = "") print ( "Directrix: y=" , c - ((b * b) + 1 ) * 4 * a, sep = "") # Driver Function a = 5 b = 3 c = 2 parabola(a, b, c) # This code is contributed by Smitha. |
C#
// C# program to find the vertex, // focus and directrix of a parabola using System; class GFG { // Function to calculate Vertex, // Focus and Directrix static void parabola( float a, float b, float c) { Console.WriteLine( "Vertex: (" + (-b / (2 * a)) + ", " + (((4 * a * c) - (b * b)) / (4 * a)) + ")" ); Console.WriteLine( "Focus: (" + (-b / (2 * a)) + ", " + (((4 * a * c) - (b * b) + 1) / (4 * a)) + ")" ); Console.Write( "Directrix:" + " y=" + ( int )(c - ((b * b) + 1) * 4 * a)); } // Driver Function public static void Main() { float a = 5, b = 3, c = 2; // Function calling parabola(a, b, c); } } // This code is contributed by nitin mittal |
PHP
<?php // PHP program to Find the vertex, // focus and directrix of a parabola // Function to calculate Vertex, // Focus and Directrix function parabola( $a , $b , $c ) { echo "Vertex: (" , (- $b / (2 * $a )) , ", " , (((4 * $a * $c ) - ( $b * $b )) / (4 * $a )), ")" , "\n" ; echo "Focus: (" , (- $b / (2 * $a )) , ", " , (((4 * $a * $c ) - ( $b * $b ) + 1) / (4 * $a )) , ")" , " \n" ; echo "Directrix: y=" , $c - (( $b * $b ) + 1) * 4 * $a ; } // Driver Code $a = 5; $b = 3; $c = 2; parabola( $a , $b , $c ); // This code is contributed by vt_m. ?> |
Javascript
<script> // JavaScript program to find the vertex, // focus and directrix of a parabola // Function to calculate Vertex, // Focus and Directrix function parabola(a, b, c) { document.write( "Vertex: (" + (-b / (2 * a)) + ", " + (((4 * a * c) - (b * b)) / (4 * a)) + ")" + "<br/>" ); document.write( "Focus: (" + (-b / (2 * a)) + ", " + (((4 * a * c) - (b * b) + 1) / (4 * a)) + ")" + "<br/>" ); document.write( "Directrix:" + " y=" + (c - ((b * b) + 1) * 4 * a) + "<br/>" ); } // Driver code let a = 5, b = 3, c = 2; // Function calling parabola(a, b, c); // This code is contributed by code_hunt. </script> |
Output –
Vertex:(-0.3, 1.55) Focus: (-0.3, 1.6) Directrix: y=-198
Time Complexity: O(1)
Auxiliary Space: O(1)
Please Login to comment...