Finding the vertex, focus and directrix of a parabola

22 Jun, 2022
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 form Vertex: Focus: Directrix: 
 
C++
Java
Python 3
C#
PHP
Javascript
#include <iostream>using namespace std; // Function to calculate Vertex, Focus and Directrixvoid 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 Functionint main(){    float a = 5, b = 3, c = 2;    parabola(a, b, c);    return 0;}
// 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
# Function to calculate Vertex,# Focus and Directrixdef 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 Functiona = 5b = 3c = 2parabola(a, b, c) # This code is contributed by Smitha.
// C# program to find the vertex,// focus and directrix of a parabolausing 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 program to Find the vertex,// focus and directrix of a parabola // Function to calculate Vertex,// Focus and Directrixfunction 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.?>
<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) 
Smitha Dinesh Semwal
nitin mittal
vt_m
code_hunt
mailaruyashaswi
Geometric
Mathematical
Mathematical
Geometric
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.