Open In App

Check whether given circle resides in boundary maintained by two other circles

Given outer circle radius R and inner circle radius r, making circles from the same center and forming the boundary between them. Now, given X and  Y coordinates which denote the center of the new circle to be formed with radius rad, your task is to check whether the circle with coordinates X and Y as the center can fit in the boundary of circles formed or not.
Examples: 
 

Input: R = 8, r = 4, x = 5, y = 3, rad = 1
Output: Fits



Input: R =9, r = 4, x = 5, y = 3, rad = 1
Output: Fits

Input :  R = 8, r = 4, x = 5, y = 3,  rad = 3.
Output: Doesn’t Fit



Approach: The idea is to calculate the distance between the center (0, 0) and the coordinates of the circle to be checked. 

Below is the implementation of the above approach:

// CPP program to check whether circle with given
// co-ordinates reside within the boundary
// of outer circle and inner circle
#include <bits/stdc++.h>
using namespace std;
 
// function to check if given circle fit in
// boundary or not
void fitOrNotFit(int R, int r, int x, int y,
                                 int rad) {
         
    // Distance from the center
    double val = sqrt(pow(x, 2) + pow(y, 2));
     
    // Checking the corners of circle
    if (val + rad <= R && val - rad >= r)   
        cout << "Fits\n";   
    else
        cout << "Doesn't Fit\n";
}
 
// driver program
int main()
{
    // Radius of outer circle and inner circle
    // respectively
    int R = 8, r = 4;
     
    // Co-ordinates and radius of the circle
    // to be checked
    int x = 5, y = 3, rad = 3;
    fitOrNotFit(R, r, x, y, rad);
    return 0;
}

                    
// Java program to check whether circle with given
// co-ordinates reside within the boundary
// of outer circle and inner circle
import java.util.*;
 
class GFG
{
// function to check if given circle fit in
// boundary or not
static void fitOrNotFit(int R, int r, int x, int y,
                                        int rad)
{
    // Distance from the center
    double val = Math.sqrt(Math.pow(x, 2) +
                           Math.pow(y, 2));
     
    // Checking the corners of circle
    if (val + rad <= R && val - rad >= r)
        System.out.println("Fits");
    else
    System.out.println("Doesn't Fit");    
}
 
// driver program
public static void main (String[] args)
{
    // Radius of outer circle and inner circle
    // respectively
    int R = 8, r = 4;
     
    // Co-ordinates and radius of the circle
    // to be checked
    int x = 5, y = 3, rad = 3;
    fitOrNotFit(R, r, x, y, rad);
}
}
/* This Code is contributed by Kriti Shukla */

                    

                    

                    

                    

                    

Output
Doesn't Fit

Time Complexity: O(log n) since using inbuilt sqrt and pow function
Auxiliary Space: O(1)



 


Article Tags :