Skip to content
Related Articles

Related Articles

Program to find X, Y and Z intercepts of a plane
  • Difficulty Level : Expert
  • Last Updated : 23 Oct, 2020

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

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to find the
// X, Y and Z intercepts of a plane
#include<iostream>
using namespace std;
 
float * XandYandZintercept(float A, float B,
                            float C, float D)
{
        static float rslt[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
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

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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[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()
    {
        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

chevron_right


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

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to find the
// X, Y and Z intercepts of a plane
#include<bits/stdc++.h>
using namespace std;
 
float * XandYandZintercept( float A, float B,
                            float C, float D)
{
    static float rslt[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;
}
 
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
    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[3] = {x1, y1, z1};
    int q[3] = {x2, y2, z2};
    int r[3] = {x3, y3, z3};
    equation_plane(p, q, r);
 
}
 
// This code is contributed by chitranayal

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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[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++)
  {
    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

chevron_right


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.

My Personal Notes arrow_drop_up
Recommended Articles
Page :