Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

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

  • Last Updated : 22 Nov, 2021

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: 

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

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

 




My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!