给定一个点 (x1, y1) 和一条线 (ax + by + c = 0)。任务是找到给定点和线之间的垂直距离。
例子 :
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
方法:给定点到直线的距离(即最短距离)是该点到给定直线的垂直距离。平面中直线的方程由方程 ax + by + c = 0 给出,其中 a、b 和 c 是实常数。点的坐标是 (x1, y1)
二维中点和线之间距离的公式由下式给出:
Distance = (| a*x1 + b*y1 + c |) / (sqrt( a*a + b*b))
下面是上述公式的实现:
方案一:
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
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
输出:
Perpendicular distance is 3.32820117735
程序二:
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
输出:
Perpendicular distance is 3.6