Related Articles
Perpendicular distance between a point and a Line in 2 D
• Difficulty Level : Basic
• Last Updated : 03 May, 2021

Given a point (x1, y1) and a line (ax + by + c = 0). The task is to find the perpendicular distance between the given point and the line.

Examples :

Input: x1 = 5, y1 = 6, a = -2, b = 3, c = 4
Output:3.32820117735
Input: x1 = -1, y1 = 3, a = 4, b = -3, c = – 5
Output:3.6

Approach: The distance (i.e shortest distance) from a given point to a line is the perpendicular distance from that point to the given line. The equation of a line in the plane is given by the equation ax + by + c = 0, where a, b and c are real constants. the co-ordinate of the point is (x1, y1)
The formula for distance between a point and a line in 2-D is given by:

`Distance = (| a*x1 + b*y1 + c |) / (sqrt( a*a + b*b))`

Below is the implementation of the above formulae:
Program 1:

## C

 `// C program to find the distance``// between a given point and a``// given line in 2 D.``#include``#include` `// Function to find distance``void` `shortest_distance(``float` `x1, ``float` `y1,``                       ``float` `a, ``float` `b,``                       ``float` `c)``{``    ``float` `d = ``fabs``((a * x1 + b * y1 + c)) /``             ``(``sqrt``(a * a + b * b));``    ``printf``(``"Perpendicular distance is %f\n"``, d);``    ``return``;``}` `// Driver Code``int` `main()``{``    ``float` `x1 = 5;``    ``float` `y1 = 6;``    ``float` `a = -2;``    ``float` `b = 3;``    ``float` `c = 4;``    ``shortest_distance(x1, y1, a, b, c);``    ``return` `0;``}` `// This code is contributed``// by Amber_Saxena.`

## Java

 `// Java program to find``// the distance between``// a given point and a``// given line in 2 D.``import` `java.io.*;` `class` `GFG``{``    ` `    ``// Function to find distance``    ``static` `void` `shortest_distance(``float` `x1, ``float` `y1,``                                  ``float` `a, ``float` `b,``                                  ``float` `c)``    ``{``        ``double` `d = Math.abs(((a * x1 + b * y1 + c)) /``                  ``(Math.sqrt(a * a + b * b)));``        ``System.out.println(``"Perpendicular "` `+``                         ``"distance is "` `+ d);``        ``return``;``    ``}` `    ``// Driver code``    ``public` `static` `void` `main (String[] args)``    ``{``        ``float` `x1 = ``5``;``        ``float` `y1 = ``6``;``        ``float` `a = -``2``;``        ``float` `b = ``3``;``        ``float` `c = ``4``;``        ``shortest_distance(x1, y1, a, b, c);``    ``}``}` `// This code is contributed``// by Mahadev.`

## Python

 `# Python program to find the distance between``# a given point and a given line in 2 D.` `import` `math` `# Function to find distance``def` `shortest_distance(x1, y1, a, b, c):``     ` `    ``d ``=` `abs``((a ``*` `x1 ``+` `b ``*` `y1 ``+` `c)) ``/` `(math.sqrt(a ``*` `a ``+` `b ``*` `b))``    ``print``(``"Perpendicular distance is"``),d``    `  `# Driver Code``x1 ``=` `5``y1 ``=` `6``a ``=` `-``2``b ``=` `3``c ``=` `4``shortest_distance(x1, y1, a, b, c) `

## C#

 `// C# program to find``// the distance between``// a given point and a``// given line in 2 D.``using` `System;` `class` `GFG``{``    ` `    ``// Function to find distance``    ``static` `void` `shortest_distance(``float` `x1, ``float` `y1,``                                ``float` `a, ``float` `b,``                                ``float` `c)``    ``{``        ``double` `d = Math.Abs(((a * x1 + b * y1 + c)) /``                ``(Math.Sqrt(a * a + b * b)));``        ``Console.WriteLine(``"Perpendicular "` `+``                        ``"distance is "` `+ d);``        ``return``;``    ``}` `    ``// Driver code``    ``public` `static` `void` `Main ()``    ``{``        ``float` `x1 = 5;``        ``float` `y1 = 6;``        ``float` `a = -2;``        ``float` `b = 3;``        ``float` `c = 4;``        ``shortest_distance(x1, y1, a, b, c);``    ``}``}` `// This code is contributed``// by inder_verma..`

## PHP

 ``

## Javascript

 ``
Output:
`Perpendicular distance is 3.32820117735`

Program 2

## C

 `// C program to find the distance``// between a given point and a``// given line in 2 D.``#include``#include` `// Function to find distance``void` `shortest_distance(``float` `x1, ``float` `y1,``                       ``float` `a, ``float` `b,``                       ``float` `c)``{``    ``float` `d = ``fabs``((a * x1 + b * y1 + c)) /``              ``(``sqrt``(a * a + b * b));``    ``printf``(``"Perpendicular distance is %f\n"``, d);``    ``return``;``}` `// Driver Code``int` `main()``{``    ``float` `x1 = -1;``    ``float` `y1 = 3;``    ``float` `a = 4;``    ``float` `b = -3;``    ``float` `c = - 5;``    ``shortest_distance(x1, y1, a, b, c);``    ``return` `0;``}` `// This code is contributed``// by Amber_Saxena.`

## Java

 `// Java program to find the distance``// between a given point and a``// given line in 2 D.``class` `GFG``{``// Function to find distance``static` `void` `shortest_distance(``double` `x1, ``double` `y1,``                              ``double` `a, ``double` `b,``                              ``double` `c)``{``    ``double` `d = Math.abs((a * x1 + b * y1 + c)) /``              ``(Math.sqrt(a * a + b * b));``    ``System.out.println(``"Perpendicular distance is "` `+ d);``    ``return``;``}` `// Driver Code``public` `static` `void` `main(String[] args)``{``    ``double` `x1 = -``1``;``    ``double` `y1 = ``3``;``    ``double` `a = ``4``;``    ``double` `b = -``3``;``    ``double` `c = - ``5``;``    ``shortest_distance(x1, y1, a, b, c);``}``}` `// This code is contributed``// by mits`

## Python

 `# Python program to find the distance between``# a given point and a given line in 2 D.` `import` `math` `# Function to find distance``def` `shortest_distance(x1, y1, a, b, c):``     ` `    ``d ``=` `abs``((a ``*` `x1 ``+` `b ``*` `y1 ``+` `c)) ``/` `(math.sqrt(a ``*` `a ``+` `b ``*` `b))``    ``print``(``"Perpendicular distance is"``),d``   `  `# Driver Code``x1 ``=` `-``1``y1 ``=` `3``a ``=` `4``b ``=` `-``3``c ``=` `-` `5``shortest_distance(x1, y1, a, b, c) `

## C#

 `// C# program to find the distance``// between a given point and a``// given line in 2 D.``using` `System;` `class` `GFG``{``// Function to find distance``static` `void` `shortest_distance(``double` `x1, ``double` `y1,``                              ``double` `a, ``double` `b,``                              ``double` `c)``{``    ``double` `d = Math.Abs((a * x1 + b * y1 + c)) /``              ``(Math.Sqrt(a * a + b * b));``    ``Console.WriteLine(``"Perpendicular distance is "` `+ d);``    ``return``;``}` `// Driver Code``public` `static` `void` `Main()``{``    ``double` `x1 = -1;``    ``double` `y1 = 3;``    ``double` `a = 4;``    ``double` `b = -3;``    ``double` `c = - 5;``    ``shortest_distance(x1, y1, a, b, c);``}``}` `// This code is contributed``// by Akanksha Rai`

## PHP

 ``

## Javascript

 ``
Output:
`Perpendicular distance is 3.6`

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up