# 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 = 8Output: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)

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 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)