📜  二维中点和线之间的垂直距离

📅  最后修改于: 2021-10-23 09:11:20             🧑  作者: Mango

给定一个点 (x1, y1) 和一条线 (ax + by + c = 0)。任务是找到给定点和线之间的垂直距离。

例子 :

方法:给定点到直线的距离(即最短距离)是该点到给定直线的垂直距离。平面中直线的方程由方程 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