Related Articles

# Program to find X, Y and Z intercepts of a plane

• Difficulty Level : Expert
• Last Updated : 02 Jun, 2021

In this article, it is explained how to find the X, Y, and Z intercepts of a plane.
There are two ways to find the intercepts:

• Case 1: When the general equation of the plane is given.

Examples:

Input: A = -6, B = 5, C = -3, D = 9
Output: 1.5
-1.8
3.0

Input: A = 7, B = 4, C = 5, D = -7
Output: 1.0
1.75
1.4

Approach: The result can be computed by following the below steps:

• Convert general equation of a plane Ax + By + Cz + D = 0 to Ax + By + Cz = – D
• Divide by -D on both sides of the equation
• So, the equation becomes x/(-D/A) + y/(-D/B) + z(-D/C) = 1
• The above equation is in the intercept form of a plane. Therefore,
X intercepts will be = -D/A
Y intercepts will be = -D/B
Z intercepts will be = -D/C

Below is the implementation of the above approach:

## C++

 `// C++ program to find the``// X, Y and Z intercepts of a plane``#include``using` `namespace` `std;` `float` `* XandYandZintercept(``float` `A, ``float` `B,``                            ``float` `C, ``float` `D)``{``        ``static` `float` `rslt;``        ` `        ``// For finding the x-intercept``        ``// put y = 0 and z = 0``        ``float` `x = -D / A ;``    ` `        ``// For finding the y-intercept``        ``// put x = 0 and z = 0``        ``float` `y = -D / B ;``    ` `        ``// For finding the z-intercept``        ``// put x = 0 and y = 0``        ``float` `z = -D / C ;``        ` `        ``rslt = x;``        ``rslt = y;``        ``rslt = z;``        ` `        ``return` `rslt;``}``    ` `// Driver code``int` `main ()``{``    ``int` `A = 2 ;``    ``int` `B = 5 ;``    ``int` `C = 7;``    ``int` `D = 8 ;``        ` `    ``float` `*rslt = XandYandZintercept(A, B, C, D);``        ` `    ``for``(``int` `i = 0; i < 3 ; i++)``    ``{``        ``cout << rslt[i] << ``" "``;``    ``}``    ` `}` `// This code is contributed by ANKITKUMAR34`

## Java

 `// Java program to find the``// X, Y and Z intercepts of a plane``class` `GFG``{``    ` `    ``static` `float``[] XandYandZintercept(``float` `A,``                    ``float` `B, ``float` `C, ``float` `D)``    ``{``        ``float` `rslt[] = ``new` `float``[``3``];``        ` `        ``// For finding the x-intercept``        ``// put y = 0 and z = 0``        ``float` `x = -D / A ;``    ` `        ``// For finding the y-intercept``        ``// put x = 0 and z = 0``        ``float` `y = -D / B ;``    ` `        ``// For finding the z-intercept``        ``// put x = 0 and y = 0``        ``float` `z = -D / C ;``        ` `        ``rslt[``0``] = x;``        ``rslt[``1``] = y;``        ``rslt[``2``] = z;``        ` `        ``return` `rslt;``    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `main (String[] args)``    ``{``        ``int` `A = ``2` `;``        ``int` `B = ``5` `;``        ``int` `C = ``7``;``        ``int` `D = ``8` `;``        ` `        ``float` `rslt[] = XandYandZintercept(A, B, C, D);``        ` `        ``for``(``int` `i = ``0``; i < ``3` `; i++)``        ``{``            ``System.out.print(rslt[i] + ``" "``);``        ``}``    ``}``}` `// This code is contributed by AnkitRai01`

## Python3

 `# Python program to find the``# X, Y and Z intercepts of a plane` `def` `XandYandZintercept(A, B, C, D):` `    ``# For finding the x-intercept``    ``# put y = 0 and z = 0``    ``x ``=` `-``D ``/` `A` `    ``# For finding the y-intercept``    ``# put x = 0 and z = 0``    ``y ``=` `-``D ``/` `B` `    ``# For finding the z-intercept``    ``# put x = 0 and y = 0``    ``z ``=` `-``D ``/` `C``    ``return` `[x, y, z]` `# Driver code``A ``=` `2``B ``=` `5``C ``=` `7``D ``=` `8``print``(XandYandZintercept(A, B, C, D))`

## C#

 `// C# program to find the``// X, Y and Z intercepts of a plane``using` `System;` `class` `GFG``{``    ` `    ``static` `float``[] XandYandZintercept(``float` `A,``                    ``float` `B, ``float` `C, ``float` `D)``    ``{``        ``float` `[]rslt = ``new` `float``;``        ` `        ``// For finding the x-intercept``        ``// put y = 0 and z = 0``        ``float` `x = -D / A ;``    ` `        ``// For finding the y-intercept``        ``// put x = 0 and z = 0``        ``float` `y = -D / B ;``    ` `        ``// For finding the z-intercept``        ``// put x = 0 and y = 0``        ``float` `z = -D / C ;``        ` `        ``rslt = x;``        ``rslt = y;``        ``rslt = z;``        ` `        ``return` `rslt;``    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `Main()``    ``{``        ``int` `A = 2 ;``        ``int` `B = 5 ;``        ``int` `C = 7;``        ``int` `D = 8 ;``        ` `        ``float` `[]rslt = XandYandZintercept(A, B, C, D);``        ` `        ``for``(``int` `i = 0; i < 3 ; i++)``        ``{``            ``Console.Write(rslt[i] + ``" "``);``        ``}``    ``}``}` `// This code is contributed by AnkitRai01`

## Javascript

 ``
Output:
`[-4.0, -1.6, -1.1428571428571428]`

• Case 2: When 3 non-collinear points are given.

Examples:

Input: A = (3, 17, 2), B = (4, 8, 5), C = (1, 8, 3)
Output: 1.5
-1.8
3.0

Input: A = (2, 11, 4), B = (7, 8, 3), C = (9, 18, 23)
Output: 1.0
1.75
1.4

Approach: The idea is to find the Cartesian form of the equation using three points.

• When three points (x1, y1, z1), (x2, y2, z2), (x3, y3, z3) are given, the determinant value of the following matrix gives the Cartesian form.
• | (x – x1) (y – y1) (z – z1) |
| (x2 – x1) (y2 – y1) (z2 – z1)| = 0
| (x3 – x1) (y3 – y1) (z3 – z1)|
• Once the above determinant is found, then the intercepts can be found using the first mentioned approach.

Below is the implementation of the above approach:

## C++

 `// C++ program to find the``// X, Y and Z intercepts of a plane``#include``using` `namespace` `std;` `float` `* XandYandZintercept( ``float` `A, ``float` `B,``                            ``float` `C, ``float` `D)``{``    ``static` `float` `rslt;``    ` `    ``// For finding the x-intercept``    ``// put y = 0 and z = 0``    ``float` `x = -D / A;` `    ``// For finding the y-intercept``    ``// put x = 0 and z = 0``    ``float` `y = -D / B ;` `    ``// For finding the z-intercept``    ``// put x = 0 and y = 0``    ``float` `z = -D / C;``    ``rslt = x;``    ``rslt = y;``    ``rslt = z;``    ` `    ``return` `rslt;``}` `void` `equation_plane(``int` `p[], ``int` `q[], ``int` `r[])``{``    ``int` `x1 = p;``    ``int` `y1 = p;``    ``int` `z1 = p;``    ``int` `x2 = q;``    ``int` `y2 = q;``    ``int` `z2 = q;``    ``int` `x3 = r;``    ``int` `y3 = r;``    ``int` `z3 = r;``    ` `    ``// For Finding value of A, B, C, D``    ``int` `a1 = x2 - x1;``    ``int` `b1 = y2 - y1;``    ``int` `c1 = z2 - z1;``    ``int` `a2 = x3 - x1;``    ``int` `b2 = y3 - y1;``    ``int` `c2 = z3 - z1;``    ``int` `A = b1 * c2 - b2 * c1;``    ``int` `B = a2 * c1 - a1 * c2;``    ``int` `C = a1 * b2 - b1 * a2;``    ``int` `D = (- A * x1 - B * y1 - C * z1);``    ` `    ``// Calling the first created function``    ``float` `* rslt=XandYandZintercept(A, B, C, D);``    ``for``(``int` `i = 0; i < 3; i++)``    ``{``        ``cout << rslt[i] << ``" "``;``    ``}``}``    ` `// Driver Code``int` `main()``{``    ``int` `x1 =-1;``    ``int` `y1 = 2;``    ``int` `z1 = 1;``    ``int` `x2 = 0;``    ``int` `y2 =-3;``    ``int` `z2 = 2;``    ``int` `x3 = 1;``    ``int` `y3 = 1;``    ``int` `z3 =-4;``        ` `    ``int` `p = {x1, y1, z1};``    ``int` `q = {x2, y2, z2};``    ``int` `r = {x3, y3, z3};``    ``equation_plane(p, q, r);` `}` `// This code is contributed by chitranayal`

## Java

 `// Java program to find the``// X, Y and Z intercepts of a plane``import` `java.util.*;` `class` `solution{` `static` `double``[] XandYandZintercept( ``double` `A, ``double` `B,``                            ``double` `C, ``double` `D)``{``    ``double` `[]rslt = ``new` `double``[``3``];``    ` `    ``// For finding the x-intercept``    ``// put y = 0 and z = 0``    ``double` `x = -D / A;` `    ``// For finding the y-intercept``    ``// put x = 0 and z = 0``    ``double` `y = -D / B ;` `    ``// For finding the z-intercept``    ``// put x = 0 and y = 0``    ``double` `z = -D / C;``    ``rslt[``0``] = x;``    ``rslt[``1``] = y;``    ``rslt[``2``] = z;``    ` `    ``return` `rslt;``}` `static` `void` `equation_plane(``int` `[]p, ``int` `[]q, ``int` `[]r)``{``    ``int` `x1 = p[``0``];``    ``int` `y1 = p[``1``];``    ``int` `z1 = p[``2``];``    ``int` `x2 = q[``0``];``    ``int` `y2 = q[``1``];``    ``int` `z2 = q[``2``];``    ``int` `x3 = r[``0``];``    ``int` `y3 = r[``1``];``    ``int` `z3 = r[``2``];``    ` `    ``// For Finding value of A, B, C, D``    ``int` `a1 = x2 - x1;``    ``int` `b1 = y2 - y1;``    ``int` `c1 = z2 - z1;``    ``int` `a2 = x3 - x1;``    ``int` `b2 = y3 - y1;``    ``int` `c2 = z3 - z1;``    ``int` `A = b1 * c2 - b2 * c1;``    ``int` `B = a2 * c1 - a1 * c2;``    ``int` `C = a1 * b2 - b1 * a2;``    ``int` `D = (- A * x1 - B * y1 - C * z1);``    ` `    ``// Calling the first created function``    ``double` `[]rslt = XandYandZintercept(A, B, C, D);``    ``for``(``int` `i = ``0``; i < ``3``; i++)``    ``{``        ``System.out.printf(rslt[i]+``" "``);``    ``}``}``    ` `// Driver Code``public` `static` `void` `main(String args[])``{``    ``int` `x1 =-``1``;``    ``int` `y1 = ``2``;``    ``int` `z1 = ``1``;``    ``int` `x2 = ``0``;``    ``int` `y2 =-``3``;``    ``int` `z2 = ``2``;``    ``int` `x3 = ``1``;``    ``int` `y3 = ``1``;``    ``int` `z3 =-``4``;``        ` `    ``int` `[]p = {x1, y1, z1};``    ``int` `[]q = {x2, y2, z2};``    ``int` `[]r = {x3, y3, z3};``    ``equation_plane(p, q, r);` `}``}` `// This code is contributed by Surendra_Gangwar`

## Python3

 `# Python program to find the``# X, Y and Z intercepts of a plane` `def` `XandYandZintercept(A, B, C, D):`` ` `    ``# For finding the x-intercept``    ``# put y = 0 and z = 0``    ``x ``=` `-``D ``/` `A` `    ``# For finding the y-intercept``    ``# put x = 0 and z = 0``    ``y ``=` `-``D ``/` `B` `    ``# For finding the z-intercept``    ``# put x = 0 and y = 0``    ``z ``=` `-``D ``/` `C``    ``return` `[x, y, z]`` ` `def` `equation_plane(p, q, r):``    ``x1 ``=` `p[``0``]``    ``y1 ``=` `p[``1``]``    ``z1 ``=` `p[``2``]``    ``x2 ``=` `q[``0``]``    ``y2 ``=` `q[``1``]``    ``z2 ``=` `q[``2``]``    ``x3 ``=` `r[``0``]``    ``y3 ``=` `r[``1``]``    ``z3 ``=` `r[``2``]``    ` `    ``# For Finding value of A, B, C, D``    ``a1 ``=` `x2 ``-` `x1``    ``b1 ``=` `y2 ``-` `y1``    ``c1 ``=` `z2 ``-` `z1``    ``a2 ``=` `x3 ``-` `x1``    ``b2 ``=` `y3 ``-` `y1``    ``c2 ``=` `z3 ``-` `z1``    ``A ``=` `b1 ``*` `c2 ``-` `b2 ``*` `c1``    ``B ``=` `a2 ``*` `c1 ``-` `a1 ``*` `c2``    ``C ``=` `a1 ``*` `b2 ``-` `b1 ``*` `a2``    ``D ``=` `(``-` `A ``*` `x1 ``-` `B ``*` `y1 ``-` `C ``*` `z1)``    ` `    ``# Calling the first created function``    ``print``(XandYandZintercept(A, B, C, D))``    ` `# Driver Code``x1 ``=``-``1``y1 ``=` `2``z1 ``=` `1``x2 ``=` `0``y2 ``=``-``3``z2 ``=` `2``x3 ``=` `1``y3 ``=` `1``z3 ``=``-``4` `equation_plane((x1, y1, z1), (x2, y2, z2), (x3, y3, z3))`

## C#

 `// C# program to find the ``// X, Y and Z intercepts of a plane``using` `System;``class` `GFG{``    ` `static` `double``[] XandYandZintercept(``double` `A,``                                   ``double` `B, ``                                   ``double` `C,``                                   ``double` `D)``{``  ``double``[] rslt = ``new` `double``;` `  ``// For finding the x-intercept ``  ``// put y = 0 and z = 0``  ``double` `x = -D / A;` `  ``// For finding the y-intercept ``  ``// put x = 0 and z = 0 ``  ``double` `y = -D / B ;` `  ``// For finding the z-intercept ``  ``// put x = 0 and y = 0``  ``double` `z = -D / C;``  ``rslt = x;``  ``rslt = y;``  ``rslt = z; ` `  ``return` `rslt;``}` `static` `void` `equation_plane(``int``[] p,``                           ``int``[] q,``                           ``int``[] r)``{``  ``int` `x1 = p;``  ``int` `y1 = p;``  ``int` `z1 = p;``  ``int` `x2 = q;``  ``int` `y2 = q;``  ``int` `z2 = q;``  ``int` `x3 = r;``  ``int` `y3 = r;``  ``int` `z3 = r;` `  ``// For Finding value``  ``// of A, B, C, D``  ``int` `a1 = x2 - x1;``  ``int` `b1 = y2 - y1;``  ``int` `c1 = z2 - z1;``  ``int` `a2 = x3 - x1;``  ``int` `b2 = y3 - y1;``  ``int` `c2 = z3 - z1;``  ``int` `A = (b1 * c2 -``           ``b2 * c1);``  ``int` `B = (a2 * c1 -``           ``a1 * c2);``  ``int` `C = (a1 * b2 -``           ``b1 * a2);``  ``int` `D = (- A * x1 -``           ``B * y1 -``           ``C * z1);` `  ``// Calling the first``  ``// created function ``  ``double``[] rslt = XandYandZintercept(A, B,``                                     ``C, D);``  ``for``(``int` `i = 0; i < 3; i++)``  ``{``    ``Console.Write(rslt[i] + ``" "``);``  ``}``}` `// Driver code``static` `void` `Main()``{``  ``int` `x1 =-1;``  ``int` `y1 = 2;``  ``int` `z1 = 1;``  ``int` `x2 = 0;``  ``int` `y2 =-3;``  ``int` `z2 = 2;``  ``int` `x3 = 1;``  ``int` `y3 = 1;``  ``int` `z3 =-4;` `  ``int``[] p = {x1, y1, z1};``  ``int``[] q = {x2, y2, z2};``  ``int``[] r = {x3, y3, z3};``  ``equation_plane(p, q, r);``}``}` `// This code is contributed by divyeshrabadiya07`

## Javascript

 ``
Output:
`[-0.11538461538461539, -0.42857142857142855, -0.3333333333333333]`

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.

My Personal Notes arrow_drop_up