Skip to content
Related Articles

Related Articles

Find the equation of plane which passes through two points and parallel to a given axis
  • Last Updated : 17 Oct, 2020

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
Output: 
-29x + 7y + 48z + 0= 0

 

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.

My Personal Notes arrow_drop_up
Recommended Articles
Page :