Open In App

Perpendicular distance between a point and a Line in 2 D

Improve
Improve
Like Article
Like
Save
Share
Report

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 <bits/stdc++.h>
using namespace std;
 
// 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));
    cout << "Perpendicular distance is, " << d << endl;
    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  Nidhi goel


C




// C program to find the distance
// between a given point and a
// given line in 2 D.
#include<stdio.h>
#include<math.h>
 
// 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




<?php
// PHP program to find the distance
// between a given point and a
// given line in 2 D.
 
// Function to find distance
function shortest_distance($x1, $y1, $a, $b, $c)
{
    $d = abs(($a * $x1 + $b * $y1 + $c)) /
               (sqrt($a * $a + $b * $b));
    echo"Perpendicular distance is ", $d;
}
 
// Driver Code
$x1 = 5;
$y1 = 6;
$a = -2;
$b = 3;
$c = 4;
shortest_distance($x1, $y1, $a, $b, $c);
 
// This code is contributed
// by inder_verma..
?>


Javascript




<script>
 
// Javascript program to find
// the distance between
// a given point and a
// given line in 2 D.
 
    // Function to find distance
    function shortest_distance(x1 , y1 , a , b , c)
    {
        var d = Math.abs((
        (a * x1 + b * y1 + c)) / (Math.sqrt(a * a + b * b)));
        document.write("Perpendicular " +
        "distance is " + d.toFixed(11));
        return;
    }
 
    // Driver code
     
        var x1 = 5;
        var y1 = 6;
        var a = -2;
        var b = 3;
        var c = 4;
        shortest_distance(x1, y1, a, b, c);
 
// This code is contributed by todaysgaurav
 
</script>


Output: 

Perpendicular distance is 3.32820117735

 

Time Complexity: O(log(a2+b2)) because it is using inbuilt sqrt function
Auxiliary Space: O(1)

Program 2
 

C++




// C++ program to find the distance
// between a given point and a
// given line in 2 D.
#include <bits/stdc++.h>
using namespace std;
 
// 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));
    cout << "Perpendicular distance is " << d << endl;
    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 Nidhi goel


C




// C program to find the distance
// between a given point and a
// given line in 2 D.
#include<stdio.h>
#include<math.h>
 
// 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.
import java.io.*;
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




<?php
// PHP program to find the distance
// between a given point and a
// given line in 2 D.
 
// Function to find distance
function shortest_distance($x1, $y1, $a,
                           $b, $c)
{
    $d = abs((int)($a * $x1 + $b * $y1 + $c) /
              sqrt($a * $a + $b * $b));
    echo"Perpendicular distance is ", $d;
}
 
// Driver Code
$x1 = -1;
$y1 = 3;
$a = 4;
$b = -3;
$c = -5;
shortest_distance($x1, $y1, $a, $b, $c);
 
// This code is contributed
// by inder_verma..
?>


Javascript




<script>
 
// Javascript program to find the distance
// between a given point and a
// given line in 2 D.
 
// Function to find distance
function shortest_distance(x1, y1, a, b, c)
{
    let d = Math.abs((a * x1 + b * y1 + c)) /
              (Math.sqrt(a * a + b * b));
    document.write("Perpendicular distance is " + d);
    return;
}
     
// driver program
    let x1 = -1;
    let y1 = 3;
    let a = 4;
    let b = -3;
    let c = - 5;
    shortest_distance(x1, y1, a, b, c);
   
  // This code is contributed by susmitakundugoaldanga.
</script>


Output: 

Perpendicular distance is 3.6

 

Time Complexity: O(log(a2+b2)) because it is using inbuilt sqrt function
Auxiliary Space: O(1)



Last Updated : 14 Dec, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads