Dadas dos circunferencias de radio r y R, ambas tienen su centro en el origen. Ahora, dada otra circunferencia de radio r1 y centro en (x1, y1). Compruebe si el tercer círculo (círculo de radio r1) se encuentra completamente dentro del anillo formado por dos círculos de radio r y R.
Ejemplos:
Input : r = 8 R = 4 r1 = 2 x1 = 6 y1 = 0 Output : yes Input : r = 8 R = 4 r1 = 2 x1 = 5 y1 = 0 Output : no
Importante: Los círculos concéntricos son aquellos círculos que tienen el mismo centro. La región que se encuentra entre dos círculos concéntricos se llama anillo o anillo circular.
Ejemplo:
Hay dos círculos concéntricos con su centro en el origen (0, 0) y radio como r = 8 y R = 4.
1.) Los círculos 1 y 2 se encuentran dentro del anillo.
2.) Los círculos 3 y 4 están fuera del ring.
La figura completa se puede visualizar como se indica a continuación:
Enfoque:
Este problema se puede resolver usando el Teorema de Pitágoras . Calcule la distancia entre el centro del círculo y el origen usando el teorema de Pitágoras, suponga que se denota por ‘dis’.
Después de calcular la distancia, simplemente verifique que el valor de (dis – r1)> = r y (dis + r1)< = R. Si ambas condiciones se cumplen, entonces el círculo se encuentra completamente dentro del anillo.
C++
// CPP code to check if a circle // lies in the ring #include <bits/stdc++.h> using namespace std; // Function to check if circle // lies in the ring bool checkcircle(int r, int R, int r1, int x1, int y1) { // distance between center of circle // center of concentric circles(origin) // using Pythagoras theorem int dis = sqrt(x1*x1+y1*y1); // Condition to check if circle is // strictly inside the ring return (dis-r1 >= R && dis+r1 <= r); } // Driver Code int main() { // Both circle with radius 'r' // and 'R' have center (0,0) int r = 8, R = 4, r1 = 2, x1 = 6, y1 = 0; if (checkcircle(r, R, r1, x1, y1)) cout << "yes" << endl; else cout << "no" << endl; return 0; }
Java
// Java code to check if a // circle lies in the ring import java.io.*; class ring { // Function to check if circle // lies in the ring public static boolean checkcircle(int r, int R, int r1, int x1, int y1) { // distance between center of circle // center of concentric circles(origin) // using Pythagoras theorem int dis = (int)Math.sqrt(x1 * x1 + y1 * y1); // Condition to check if circle // is strictly inside the ring return (dis - r1 >= R && dis + r1 <= r); } // Driver Code public static void main(String args[]) { // Both circle with radius 'r' // and 'R' have center (0,0) int r = 8, R = 4, r1 = 2, x1 = 6, y1 = 0; if (checkcircle(r, R, r1, x1, y1)) System.out.println("yes"); else System.out.println("no"); } }
Python3
# Python3 code to check if # a circle lies in the ring import math # Function to check if circle # lies in the ring def checkcircle(r, R, r1, x1, y1): # distance between center of circle # center of concentric circles(origin) # using Pythagoras theorem dis = int(math.sqrt(x1 * x1 + y1 * y1)) # Condition to check if circle is # strictly inside the ring return (dis-r1 >= R and dis+r1 <= r) # Driver Code # Both circle with radius 'r' # and 'R' have center (0,0) r = 8; R = 4; r1 = 2; x1 = 6; y1 = 0 if (checkcircle(r, R, r1, x1, y1)): print("yes") else: print("no") # This code is contributed by Smitha Dinesh Semwal.
C#
// C# code to check if a // circle lies in the ring using System; class ring { // Function to check if circle // lies in the ring public static bool checkcircle(int r, int R, int r1, int x1, int y1) { // distance between center of circle // center of concentric circles(origin) // using Pythagoras theorem int dis = (int)Math.Sqrt(x1 * x1 + y1 * y1); // Condition to check if circle // is strictly inside the ring return (dis - r1 >= R && dis + r1 <= r); } // Driver Code public static void Main() { // Both circle with radius 'r' // and 'R' have center (0, 0) int r = 8, R = 4, r1 = 2, x1 = 6, y1 = 0; if (checkcircle(r, R, r1, x1, y1)) Console.WriteLine("yes"); else Console.WriteLine("no"); } } // This code is contributed by vt_m.
PHP
<?php // PHP code to check if a circle // lies in the ring // Function to check if circle // lies in the ring function checkcircle($r, $R, $r1, $x1, $y1) { // distance between center of circle // center of concentric circles(origin) // using Pythagoras theorem $dis = sqrt($x1 * $x1 + $y1 * $y1); // Condition to check if circle is // strictly inside the ring return ($dis-$r1 >= $R && $dis + $r1 <= $r); } // Driver Code // Both circle with radius 'r' // and 'R' have center (0,0) $r = 8; $R = 4; $r1 = 2; $x1 = 6; $y1 = 0; if (checkcircle($r, $R, $r1, $x1, $y1)) echo "yes" ,"\n"; else echo "no" ,"\n"; // This code is contributed by ajit. ?>
Javascript
<script> // JavaScript program code to check if a // circle lies in the ring // Function to check if circle // lies in the ring function checkcircle(r, R, r1, x1, y1) { // distance between center of circle // center of concentric circles(origin) // using Pythagoras theorem let dis = Math.sqrt(x1 * x1 + y1 * y1); // Condition to check if circle // is strictly inside the ring return (dis - r1 >= R && dis + r1 <= r); } // Driver Code // Both circle with radius 'r' // and 'R' have center (0,0) let r = 8, R = 4, r1 = 2, x1 = 6, y1 = 0; if (checkcircle(r, R, r1, x1, y1)) document.write("yes"); else document.write("no"); // This code is contributed by splevel62. </script>
yes
Complejidad de tiempo: O (log (n)) desde que se usa la función sqrt incorporada
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA