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.
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++
#include <bits/stdc++.h>
using namespace std;
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 ;
}
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;
}
|
C
#include<stdio.h>
#include<math.h>
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 ;
}
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;
}
|
Java
import java.io.*;
class GFG
{
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 ;
}
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);
}
}
|
Python
import math
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
x1 = 5
y1 = 6
a = - 2
b = 3
c = 4
shortest_distance(x1, y1, a, b, c)
|
C#
using System;
class GFG
{
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 ;
}
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);
}
}
|
PHP
<?php
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 ;
}
$x1 = 5;
$y1 = 6;
$a = -2;
$b = 3;
$c = 4;
shortest_distance( $x1 , $y1 , $a , $b , $c );
?>
|
Javascript
<script>
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 ;
}
var x1 = 5;
var y1 = 6;
var a = -2;
var b = 3;
var c = 4;
shortest_distance(x1, y1, a, b, c);
</script>
|
Output:
Perpendicular distance is 3.32820117735
Time Complexity: O(log(a2+b2)) because it is using inbuilt sqrt function
Auxiliary Space: O(1)
C++
#include <bits/stdc++.h>
using namespace std;
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 ;
}
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;
}
|
C
#include<stdio.h>
#include<math.h>
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 ;
}
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;
}
|
Java
import java.io.*;
class GFG
{
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 ;
}
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);
}
}
|
Python
import math
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
x1 = - 1
y1 = 3
a = 4
b = - 3
c = - 5
shortest_distance(x1, y1, a, b, c)
|
C#
using System;
class GFG
{
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 ;
}
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);
}
}
|
PHP
<?php
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 ;
}
$x1 = -1;
$y1 = 3;
$a = 4;
$b = -3;
$c = -5;
shortest_distance( $x1 , $y1 , $a , $b , $c );
?>
|
Javascript
<script>
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 ;
}
let x1 = -1;
let y1 = 3;
let a = 4;
let b = -3;
let c = - 5;
shortest_distance(x1, y1, a, b, c);
</script>
|
Output:
Perpendicular distance is 3.6
Time Complexity: O(log(a2+b2)) because it is using inbuilt sqrt function
Auxiliary Space: O(1)