Dados dos círculos con sus centros C1 (x1, y1) y C2 (x2, y2) y radio r1 y r2 , la tarea es verificar si ambos círculos son ortogonales o no.
Se dice que dos curvas son ortogonales si su ángulo de intersección es un ángulo recto, es decir, las tangentes en su punto de intersección son perpendiculares.
Ejemplos:
Input: C1(4, 3), C2(0, 1), r1 = 2, r2 = 4 Output: Yes Input: C1(4, 3), C2(1, 2), r1 = 2, r2 = 2 Output: No
Acercarse:
- Encuentra la distancia entre los centros de dos círculos ‘d’ con fórmula de distancia .
- Para que los círculos sean ortogonales necesitamos comprobar si
r1 * r1 + r2 * r2 = d * d
- Si es cierto, entonces ambos círculos son ortogonales. De lo contrario no.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to check if two // circles are orthogonal or not #include <bits/stdc++.h> using namespace std; // Function to Check if the given // circles are orthogonal bool orthogonality(int x1, int y1, int x2, int y2, int r1, int r2) { // calculating the square // of the distance between C1 and C2 int dsquare = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2); // Check if the given // circles are orthogonal if (dsquare == r1 * r1 + r2 * r2) return true; else return false; } // Driver code int main() { int x1 = 4, y1 = 3; int x2 = 0, y2 = 1; int r1 = 2, r2 = 4; bool f = orthogonality(x1, y1, x2, y2, r1, r2); if (f) cout << "Given circles are" << " orthogonal."; else cout << "Given circles are" << " not orthogonal."; return 0; }
Java
// Java program to check if two // circ import java.util.*; import java.lang.*; import java.io.*; class GFG { // Function to Check if the given // circles are orthogonal public static boolean orthogonality(int x1, int y1, int x2, int y2, int r1, int r2) { // calculating the square // of the distance between C1 and C2 int dsquare = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2); // Check if the given // circles are orthogonal if (dsquare == r1 * r1 + r2 * r2) return true; else return false; } // Driver Code public static void main(String[] args) throws java.lang.Exception { int x1 = 4, y1 = 3; int x2 = 0, y2 = 1; int r1 = 2, r2 = 4; boolean f = orthogonality(x1, y1, x2, y2, r1, r2); if (f) System.out.println("Given circles are orthogonal."); else System.out.println("Given circles are not orthogonal."); } } // This code is contributed by ashutosh450
Python3
# Python3 program to check if two # circles are orthogonal or not # Function to Check if the given # circles are orthogonal def orthogonality(x1, y1, x2, y2, r1, r2): # calculating the square # of the distance between C1 and C2 dsquare = (x1 - x2) * (x1 - x2) + \ (y1 - y2) * (y1 - y2); # Check if the given # circles are orthogonal if (dsquare == r1 * r1 + r2 * r2): return True else: return False # Driver code x1, y1 = 4, 3 x2, y2 = 0, 1 r1, r2 = 2, 4 f = orthogonality(x1, y1, x2, y2, r1, r2) if (f): print("Given circles are orthogonal.") else: print("Given circles are not orthogonal.") # This code is contributed by Mohit Kumar
C#
// C# implementation for above program using System; class GFG { // Function to Check if the given // circles are orthogonal public static bool orthogonality(int x1, int y1, int x2, int y2, int r1, int r2) { // calculating the square // of the distance between C1 and C2 int dsquare = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2); // Check if the given // circles are orthogonal if (dsquare == r1 * r1 + r2 * r2) return true; else return false; } // Driver Code public static void Main() { int x1 = 4, y1 = 3; int x2 = 0, y2 = 1; int r1 = 2, r2 = 4; bool f = orthogonality(x1, y1, x2, y2, r1, r2); if (f) Console.WriteLine("Given circles are orthogonal."); else Console.WriteLine("Given circles are not orthogonal."); } } // This code is contributed by AnkitRai01
Javascript
<script> // Javascript program to check if two // circles are orthogonal or not // Function to Check if the given // circles are orthogonal function orthogonality(x1, y1, x2, y2, r1, r2) { // calculating the square // of the distance between C1 and C2 let dsquare = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2); // Check if the given // circles are orthogonal if (dsquare == r1 * r1 + r2 * r2) return true; else return false; } // Driver code let x1 = 4, y1 = 3; let x2 = 0, y2 = 1; let r1 = 2, r2 = 4; let f = orthogonality(x1, y1, x2, y2, r1, r2); if (f) document.write("Given circles are orthogonal."); else document.write("Given circles are not orthogonal."); // This code is contributed by divyesh072019. </script>
Producción:
Given circles are orthogonal.
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por DiptayanBiswas y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA