Skip to content
Related Articles

Related Articles

Improve Article
Check whether a point lies inside a sphere or not
  • Difficulty Level : Basic
  • Last Updated : 24 Mar, 2021

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)
 

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 industry experts, please refer DSA Live Classes




My Personal Notes arrow_drop_up
Recommended Articles
Page :