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

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

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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

direction ratio = (x2 – x1, y2 – y1, z2 – z1) Since the line is parallel to the given axis . Therefore, the cross-product of and is 0 which is given by: 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: (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 . (Equation 2)
where A, B, and C are the direction ratio of the plane perpendicular to plane.

Since Equation 1 are Equation 2 are perpendicular to each other, therefore the value of 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 above approach:

## C++

 // C++ implementation to find the  // equation of plane which passes  // through two points and parallel  // to a given axis     #include  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

## 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 Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Improved By : dewantipandeydp, Code_Mech

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.