Distance between a point and a Plane in 3 D - GeeksforGeeks

22 Oct, 2021
You are given a points (x1, y1, z1) and a plane a * x + b * y + c * z + d = 0. The task is to find the perpendicular(shortest) distance between that point and the given Plane. 
Examples :  
Input: x1 = 4, y1 = -4, z1 = 3, a = 2, b = -2, c = 5, d = 8 Output: Perpendicular distance is 6.78902858227Input: x1 = 2, y1 = 8, z1 = 5, a = 1, b = -2, c = -2, d = -1 Output: Perpendicular distance is 8.33333333333 
 
Approach: The perpendicular distance (i.e shortest distance) from a given point to a Plane is the perpendicular distance from that point to the given plane. Let the co-ordinate of the given point be (x1, y1, z1) and equation of the plane be given by the equation a * x + b * y + c * z + d = 0, where a, b and c are real constants.The formula for distance between a point and Plane in 3-D is given by: 
Distance = (| a*x1 + b*y1 + c*z1 + d |) / (sqrt( a*a + b*b + c*c))
Below is the implementation of the above formulae:  
C++
C
Java
Python
C#
PHP
Javascript
// C++ program to find the// Perpendicular(shortest)// distance between a point// and a Plane in 3 D.#include<bits/stdc++.h>#include<math.h> using namespace std; // Function to find distancevoid shortest_distance(float x1, float y1,                       float z1, float a,                       float b, float c,                       float d){    d = fabs((a * x1 + b * y1 +              c * z1 + d));    float e = sqrt(a * a + b *                   b + c * c);    cout << "Perpendicular distance is "         << (d / e);        return;} // Driver Codeint main(){    float x1 = 4;    float y1 = -4;    float z1 = 3;    float a = 2;    float b = -2;    float c = 5;    float d = 8;     // Function call    shortest_distance(x1, y1, z1,                      a, b, c, d);} // This code is contributed// by Akanksha Rai(Abby_akku)
// C program to find the Perpendicular(shortest)// distance between a point and a Plane in 3 D. #include<stdio.h>#include<math.h> // Function to find distancevoid shortest_distance(float x1, float y1, float z1,                    float a, float b, float c, float d){    d = fabs((a * x1 + b * y1 + c * z1 + d));    float e = sqrt(a * a + b * b + c * c);    printf("Perpendicular distance is %f", d/e);        return;} // Driver Codeint main(){    float x1 = 4;    float y1 = -4;    float z1 = 3;    float a = 2;    float b = -2;    float c = 5;    float d = 8;     // Function call    shortest_distance(x1, y1, z1, a, b, c, d);}// This code is contributed// by Amber_Saxena.
// Java program to find the// Perpendicular(shortest)// distance between a point// and a Plane in 3 D.import java .io.*; class GFG{     // Function to find distancestatic void shortest_distance(float x1, float y1,                              float z1, float a,                              float b, float c,                              float d){    d = Math.abs((a * x1 + b *                 y1 + c * z1 + d));    float e = (float)Math.sqrt(a * a + b *                               b + c * c);    System.out.println("Perpendicular distance " +                                   "is " + d / e);} // Driver codepublic static void main(String[] args){    float x1 = 4;    float y1 = -4;    float z1 = 3;    float a = 2;    float b = -2;    float c = 5;    float d = 8;     // Function call    shortest_distance(x1, y1, z1,                      a, b, c, d);}} // This code is contributed// by Amber_Saxena.
# Python program to find the Perpendicular(shortest)# distance between a point and a Plane in 3 D. import math # Function to find distancedef shortest_distance(x1, y1, z1, a, b, c, d):         d = abs((a * x1 + b * y1 + c * z1 + d))    e = (math.sqrt(a * a + b * b + c * c))    print("Perpendicular distance is", d/e)      # Driver Codex1 = 4y1 = -4z1 = 3a = 2b = -2c = 5d = 8 # Function callshortest_distance(x1, y1, z1, a, b, c, d)     
// C# program to find the// Perpendicular(shortest)// distance between a point// and a Plane in 3 D.using System; class GFG{     // Function to find distancestatic void shortest_distance(float x1, float y1,                              float z1, float a,                              float b, float c,                              float d){    d = Math.Abs((a * x1 + b *                   y1 + c * z1 + d));    float e = (float)Math.Sqrt(a * a + b *                               b + c * c);    Console.Write("Perpendicular distance " +                              "is " + d / e);} // Driver codepublic static void Main(){    float x1 = 4;    float y1 = -4;    float z1 = 3;    float a = 2;    float b = -2;    float c = 5;    float d = 8;     // Function call    shortest_distance(x1, y1, z1,                      a, b, c, d);}} // This code is contributed// by ChitraNayal
<?php// PHP program to find the// Perpendicular(shortest)// distance between a point// and a Plane in 3 D. // Function to find distancefunction shortest_distance($x1, $y1, $z1,                           $a, $b, $c, $d){    $d = abs(($a * $x1 + $b * $y1 +              $c * $z1 + $d));    $e = sqrt($a * $a + $b *              $b + $c * $c);    echo "Perpendicular distance is ". $d / $e;} // Driver Code$x1 = 4;$y1 = -4;$z1 = 3;$a = 2;$b = -2;$c = 5;$d = 8;     // function callshortest_distance($x1, $y1, $z1,                  $a, $b, $c, $d); // This code is contributed// by Amber_Saxena.?>
<script>  // Javascript program to find the// Perpendicular(shortest)// distance between a point// and a Plane in 3 D. // Function to find distancefunction shortest_distance( x1,  y1, z1,  a,                        b,  c, d){    d = Math.abs((a * x1 + b * y1 +              c * z1 + d));    let e = Math.sqrt(a * a + b *                   b + c * c);    document.write("Perpendicular distance is "         + (d / e));        return;}     // driver code        let x1 = 4;    let y1 = -4;    let z1 = 3;    let a = 2;    let b = -2;    let c = 5;    let d = 8;     // Function call    shortest_distance(x1, y1, z1,                      a, b, c, d);      // This code is contributed by jana_sayantan.  </script>
Perpendicular distance is 6.78902858227
 
Amber_Saxena
ukasp
Akanksha_Rai
jana_sayantan
danielstorc
Geometric
Mathematical
School Programming
Mathematical
Geometric
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Convex Hull | Set 1 (Jarvis's Algorithm or Wrapping)
Closest Pair of Points | O(nlogn) Implementation
Convex Hull | Set 2 (Graham Scan)
Line Clipping | Set 1 (Cohen–Sutherland Algorithm)
Given n line segments, find if any two segments intersect
Program for Fibonacci numbers
Write a program to print all permutations of a given string
C++ Data Types
Set in C++ Standard Template Library (STL)
Program to find GCD or HCF of two numbers