Open In App

Find the equation of plane which passes through two points and parallel to a given axis

Improve
Improve
Like Article
Like
Save
Share
Report

Given two points A(x1, y1, z1) and B(x2, y2, z2) and a set of points (a, b, c) which represent the axis (ai + bj + ck), the task is to find the equation of plane which passes through the given points A and B and parallel to the given axis.

Examples: 

Input: x1 = 1, y1 = 2, z1 = 3, x2 = 3, y2 = 4, z2 = 5, a= 6, b = 7, c = 8 
Output: 2x + 4y + 2z + 0 = 0 

Input: x1 = 2, y1 = 3, z1 = 5, x2 = 6, y2 = 7, z2 = 8, a= 11, b = 23, c = 10. 
Output: -29x + 7y + 48z + 0= 0 

Approach: 
From the given two points on plane A and B, The directions ratios a vector equation of line AB is given by:  

direction ratio = (x2 – x1, y2 – y1, z2 – z1) 

\overrightarrow{AB} = (x2-x1) i + (y2-y1) j + (z2 - z1) k

Since the line 

\overrightarrow{AB}
 

is parallel to the given axis 


(ai + bj + ck)
 

. Therefore, the cross-product of 


\overrightarrow{AB}
 

and 


(ai + bj + ck)
 

is 0 which is given by: 

\begin{vmatrix} i & j & k\\ d & e & f \\ a & b & c \end{vmatrix} = 0
 

where, 
d, e, and f are the coefficient of vector equation of line AB i.e., 
d = (x2 – x1), 
e = (y2 – y1), and 
f = (z2 – z1) 
and a, b, and c are the coefficient of given axis. 

The equation formed by the above determinant is given by:  

(b*f - c*e) i - (a * f - c * d) j + (a * e - b * d) k = 0
 

(Equation 1) 


 

Equation 1 is perpendicular to the line AB which means it is perpendicular to the required plane. 
Let the Equation of the plane is given by 
Ax + By + Cz = D
(Equation 2) 
where A, B, and C are the direction ratio of the plane perpendicular to the plane.
Since Equation 1 is Equation 2 are perpendicular to each other, therefore the value of the direction ratio of Equation 1 & 2 are parallel. Then the coefficient of the plane is given by:   

A = (b*f – c*e), 
B = (a*f – c*d), and 
C = (a*e – b*d) 

Now dot product of plane and vector line AB gives the value of D as  

D = -(A * d – B * e + C * f)  

Below is the implementation of the above approach: 

C++

// C++ implementation to find the
// equation of plane which passes
// through two points and parallel
// to a given axis
 
#include <bits/stdc++.h>
using namespace std;
 
void findEquation(int x1, int y1, int z1,
                  int x2, int y2, int z2,
                  int d, int e, int f)
{
 
    // Find direction vector
    // of points (x1, y1, z1)
    // and (x2, y2, z2)
    double a = x2 - x1;
    double b = y2 - y1;
    double c = z2 - z1;
 
    // Values that are calculated
    // and simplified from the
    // cross product
    int A = (b * f - c * e);
    int B = (a * f - c * d);
    int C = (a * e - b * d);
    int D = -(A * d - B * e + C * f);
 
    // Print the equation of plane
    cout << A << "x + " << B << "y + "
         << C << "z + " << D << "= 0";
}
 
// Driver Code
int main()
{
 
    // Point A
    int x1 = 2, y1 = 3, z1 = 5;
 
    // Point B
    int x2 = 6, y2 = 7, z2 = 8;
 
    // Given axis
    int a = 11, b = 23, c = 10;
 
    // Function Call
    findEquation(x1, y1, z1,
                 x2, y2, z2,
                 a, b, c);
 
    return 0;
}

                    

Java

// Java implementation to find the
// equation of plane which passes
// through two points and parallel
// to a given axis
import java.util.*;
 
class GFG{
 
static void findEquation(int x1, int y1, int z1,
                         int x2, int y2, int z2,
                         int d, int e, int f)
{
     
    // Find direction vector
    // of points (x1, y1, z1)
    // and (x2, y2, z2)
    double a = x2 - x1;
    double b = y2 - y1;
    double c = z2 - z1;
 
    // Values that are calculated
    // and simplified from the
    // cross product
    int A = (int)(b * f - c * e);
    int B = (int)(a * f - c * d);
    int C = (int)(a * e - b * d);
    int D = -(int)(A * d - B * e + C * f);
 
    // Print the equation of plane
    System.out.println(A + "x + " + B + "y + " +
                       C + "z + " + D + "= 0 ");
}
 
// Driver code
public static void main(String[] args)
{
 
    // Point A
    int x1 = 2, y1 = 3, z1 = 5;
 
    // Point B
    int x2 = 6, y2 = 7, z2 = 8;
 
    // Given axis
    int a = 11, b = 23, c = 10;
 
    // Function Call
    findEquation(x1, y1, z1,
                 x2, y2, z2,
                 a, b, c);
}
}
 
// This code is contributed by Pratima Pandey

                    

Python3

# Python3 implementation
# to find the equation
# of plane which passes
# through two points and
# parallel to a given axis
def findEquation(x1, y1, z1,
                 x2, y2, z2,
                 d, e, f):
   
    # Find direction vector
    # of points (x1, y1, z1)
    # and (x2, y2, z2)
    a = x2 - x1
    b = y2 - y1
    c = z2 - z1
 
    # Values that are calculated
    # and simplified from the
    # cross product
    A = (b * f - c * e)
    B = (a * f - c * d)
    C = (a * e - b * d)
    D = -(A * d - B *
          e + C * f)
 
    # Print the equation of plane
    print (A, "x + ", B, "y + ",
           C, "z + ", D, "= 0")
 
# Driver Code
if __name__ == "__main__":
   
    # Point A
    x1 = 2
    y1 = 3
    z1 = 5;
 
    # Point B
    x2 = 6
    y2 = 7
    z2 = 8
 
    # Given axis
    a = 11
    b = 23
    c = 10
 
    # Function Call
    findEquation(x1, y1, z1,
                 x2, y2, z2,
                 a, b, c)
 
# This code is contributed by Chitranayal

                    

C#

// C# implementation to find the
// equation of plane which passes
// through two points and parallel
// to a given axis
using System;
class GFG{
 
static void findEquation(int x1, int y1, int z1,
                         int x2, int y2, int z2,
                         int d, int e, int f)
{
     
    // Find direction vector
    // of points (x1, y1, z1)
    // and (x2, y2, z2)
    double a = x2 - x1;
    double b = y2 - y1;
    double c = z2 - z1;
 
    // Values that are calculated
    // and simplified from the
    // cross product
    int A = (int)(b * f - c * e);
    int B = (int)(a * f - c * d);
    int C = (int)(a * e - b * d);
    int D = -(int)(A * d - B * e + C * f);
 
    // Print the equation of plane
    Console.Write(A + "x + " + B + "y + " +
                  C + "z + " + D + "= 0 ");
}
 
// Driver code
public static void Main()
{
 
    // Point A
    int x1 = 2, y1 = 3, z1 = 5;
 
    // Point B
    int x2 = 6, y2 = 7, z2 = 8;
 
    // Given axis
    int a = 11, b = 23, c = 10;
 
    // Function Call
    findEquation(x1, y1, z1,
                 x2, y2, z2,
                 a, b, c);
}
}
 
// This code is contributed by Code_Mech

                    

Javascript

<script>
// javascript implementation to find the
// equation of plane which passes
// through two points and parallel
// to a given axis
 
    function findEquation(x1 , y1 , z1 , x2 , y2 , z2 , d , e , f)
    {
 
        // Find direction vector
        // of points (x1, y1, z1)
        // and (x2, y2, z2)
        var a = x2 - x1;
        var b = y2 - y1;
        var c = z2 - z1;
 
        // Values that are calculated
        // and simplified from the
        // cross product
        var A = parseInt( (b * f - c * e));
        var B = parseInt( (a * f - c * d));
        var C = parseInt( (a * e - b * d));
        var D = -parseInt( (A * d - B * e + C * f));
 
        // Print the equation of plane
        document.write(A + "x + " + B + "y + " + C + "z + " + D + "= 0 ");
    }
 
    // Driver code
     
        // Point A
        var x1 = 2, y1 = 3, z1 = 5;
 
        // Point B
        var x2 = 6, y2 = 7, z2 = 8;
 
        // Given axis
        var a = 11, b = 23, c = 10;
 
        // Function Call
        findEquation(x1, y1, z1, x2, y2, z2, a, b, c);
 
// This code is contributed by Rajput-Ji
</script>

                    

Output: 
-29x + 7y + 48z + 0= 0

 

Time Complexity: O(1)

Auxiliary Space: O(1)



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