Sunday, September 22, 2024
Google search engine
HomeData Modelling & AIFind the equation of plane which passes through two points and parallel...

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 

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)

Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

RELATED ARTICLES

Most Popular

Recent Comments