Open In App

Check whether a point lies inside a sphere or not

Improve
Improve
Like Article
Like
Save
Share
Report

Given co-ordinates of the center of a sphere (cx, cy, cz) and its radius r. Our task is to check whether a point (x, y, z) lies inside, outside or on this sphere.
Examples: 
 

Input : Centre(0, 0, 0) Radius 3
        Point(1, 1, 1)
Output :Point is inside the sphere

Input :Centre(0, 0, 0) Radius 3
       Point(2, 1, 2)
Output :Point lies on the sphere

Input :Centre(0, 0, 0) Radius 3
       Point(10, 10, 10)
Output :Point is outside the sphere

 

Approach: 
Whether a point lies inside a sphere or not, depends upon its distance from the centre. 
A point (x, y, z) is inside the sphere with center (cx, cy, cz) and radius r if 
 

( x-cx ) ^2 + (y-cy) ^2 + (z-cz) ^ 2 < r^2 

A point (x, y, z) lies on the sphere with center (cx, cy, cz) and radius r if 
 

( x-cx ) ^2 + (y-cy) ^2 + (z-cz) ^ 2 = r^2 

A point (x, y, z) is outside the sphere with center (cx, cy, cz) and radius r if 
 

( x-cx ) ^2 + (y-cy) ^2 + (z-cz) ^ 2 > r^2 

 

C++




// CPP code to illustrate above approach
#include <bits/stdc++.h>
using namespace std;
// function to calculate the distance between centre and the point
int check(int cx, int cy, int cz, int x, int y, int z)
{
    int x1 = pow((x - cx), 2);
    int y1 = pow((y - cy), 2);
    int z1 = pow((z - cz), 2);
 
    // distance between the centre
    // and given point
    return (x1 + y1 + z1);
}
 
// Driver program to test above function
int main()
{
    // coordinates of centre
    int cx = 1, cy = 2, cz = 3;
 
    int r = 5; // radius of the sphere
    int x = 4, y = 5, z = 2; // coordinates of point
 
    int ans = check(cx, cy, cz, x, y, z);
 
    // distance btw centre and point is less
    // than radius
    if (ans < (r * r))
        cout << "Point is inside the sphere";
 
    // distance btw centre and point is
    // equal to radius
    else if (ans == (r * r))
        cout << "Point lies on the sphere";
 
    // distance btw center and point is
    // greater than radius
    else
        cout << "Point is outside the sphere";
    return 0;
}


Java




// Java code to illustrate above approach
import java.io.*;
import java.util.*;
import java.lang.*;
 
class GfG {
     
    // function to calculate the distance
    // between centre and the point
    public static int check(int cx, int cy,
                 int cz, int x, int y, int z)
    {
        int x1 = (int)Math.pow((x - cx), 2);
        int y1 = (int)Math.pow((y - cy), 2);
        int z1 = (int)Math.pow((z - cz), 2);
     
        // distance between the centre
        // and given point
        return (x1 + y1 + z1);
    }
     
    // Driver program to test above function
    public static void main(String[] args)
    {
        // coordinates of centre
        int cx = 1, cy = 2, cz = 3;
     
        int r = 5; // radius of the sphere
         
        // coordinates of point
        int x = 4, y = 5, z = 2;
     
        int ans = check(cx, cy, cz, x, y, z);
     
        // distance btw centre and point is less
        // than radius
        if (ans < (r * r))
            System.out.println("Point is inside"
                       + " the sphere");
     
        // distance btw centre and point is
        // equal to radius
        else if (ans == (r * r))
            System.out.println("Point lies on"
                        + " the sphere");
     
        // distance btw center and point is
        // greater than radius
        else
            System.out.println("Point is outside"
                             + " the sphere");
    }
}
 
// This code is contributed by Sagar Shukla.


Python




# Python3 code to illustrate above approach
 
import math
# function to calculate distance btw center and given point
def check(cx, cy, cz, x, y, z, ):
     
    x1 = math.pow((x-cx), 2)
    y1 = math.pow((y-cy), 2)
    z1 = math.pow((z-cz), 2)
    return (x1 + y1 + z1) # distance between the centre and given point
     
# driver code   
cx = 1
cy = 2 # coordinates of centre
cz = 3
 
r = 5 # radius of sphere
 
x = 4
y = 5 # coordinates of the given point
z = 2
# function call to calculate distance btw centre and given point
ans = check(cx, cy, cz, x, y, z);
 
# distance btw centre and point is less than radius
if ans<(r**2):
    print("Point is inside the sphere")
 
# distance btw centre and point is equal to radius
elif ans ==(r**2):
    print("Point lies on the sphere")
 
# distance btw centre and point is greater than radius
else:
    print("Point is outside the sphere")


C#




// C# code to illustrate
// above approach
using System;
 
class GFG
{
     
    // function to calculate
    // the distance between
    // centre and the point
    public static int check(int cx, int cy,
                            int cz, int x,
                            int y, int z)
    {
        int x1 = (int)Math.Pow((x - cx), 2);
        int y1 = (int)Math.Pow((y - cy), 2);
        int z1 = (int)Math.Pow((z - cz), 2);
     
        // distance between the
        // centre and given point
        return (x1 + y1 + z1);
    }
     
    // Driver Code
    public static void Main()
    {
        // coordinates of centre
        int cx = 1, cy = 2, cz = 3;
     
        int r = 5; // radius of the sphere
         
        // coordinates of point
        int x = 4, y = 5, z = 2;
     
        int ans = check(cx, cy, cz,
                        x, y, z);
     
        // distance btw centre
        // and point is less
        // than radius
        if (ans < (r * r))
            Console.WriteLine("Point is inside" +
                                  " the sphere");
     
        // distance btw centre
        // and point is
        // equal to radius
        else if (ans == (r * r))
            Console.WriteLine("Point lies on" +
                                " the sphere");
     
        // distance btw center
        // and point is greater
        // than radius
        else
            Console.WriteLine("Point is outside" +
                                   " the sphere");
    }
}
 
// This code is contributed by anuj_67.


PHP




<?php
// function to calculate 
// the distance between
// centre and the point
function check($cx, $cy, $cz,
               $x, $y, $z)
{
    $x1 = pow(($x - $cx), 2);
    $y1 = pow(($y - $cy), 2);
    $z1 = pow(($z - $cz), 2);
 
    // distance between the
    // centre and given point
    return ($x1 + $y1 + $z1);
}
 
// Driver Code
 
// coordinates of centre
$cx = 1;
$cy = 2;
$cz = 3;
 
$r = 5; // radius of the sphere
$x = 4;
$y = 5;
$z = 2; // coordinates of point
 
$ans = check($cx, $cy, $cz,
             $x, $y, $z);
 
// distance btw centre and
// point is less than radius
if ($ans < ($r * $r))
    echo "Point is inside " .  
                "the sphere";
 
// distance btw centre and
// point is equal to radius
else if ($ans == ($r * $r))
    echo "Point lies on the sphere";
 
// distance btw center and point
// is greater than radius
else
    echo "Point is outside " .
                 "the sphere";
     
// This code is contributed
// by shiv_bhakt
?>


Javascript




<script>
 
// Javascript code to illustrate above approach
 
// function to calculate the distance between centre and the point
function check(cx, cy, cz, x, y, z)
{
    let x1 = Math.pow((x - cx), 2);
    let y1 = Math.pow((y - cy), 2);
    let z1 = Math.pow((z - cz), 2);
 
    // distance between the centre
    // and given point
    return (x1 + y1 + z1);
}
 
// Driver program to test above function
  
    // coordinates of centre
    let cx = 1, cy = 2, cz = 3;
 
    let r = 5; // radius of the sphere
    let x = 4, y = 5, z = 2; // coordinates of point
 
    let ans = check(cx, cy, cz, x, y, z);
 
    // distance btw centre and point is less
    // than radius
    if (ans < (r * r))
        document.write("Point is inside the sphere");
 
    // distance btw centre and point is
    // equal to radius
    else if (ans == (r * r))
        document.write("Point lies on the sphere");
 
    // distance btw center and point is
    // greater than radius
    else
        document.write("Point is outside the sphere");
     
// This code is contributed by Mayank Tyagi
 
</script>


Output: 

Point is inside the sphere

Time Complexity: O(1)
Auxiliary Space: O(1)



Last Updated : 25 Aug, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads