# Check if two given Circles are Orthogonal or not

Given are two circles with their centres C1(x1, y1) and C2(x2, y2) and radius r1 and r2, the task is to check if both the circles are orthogonal or not.

Two curves are said to be orthogonal if their angle of intersection is a right angle i.e the tangents at their point of intersection are perpendicular.

Examples:

```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
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach:

• Find the distance between the centres of two circles ‘d’ with distance formula.
• For the circles to be orthogonal we need to check if
`r1 * r1 + r2 * r2 = d * d`
• If it is true, then both the circles are orthagonal. Else not.

Below is the implementation of the above approach:

## C++

 `// C++ program to check if two ` `// circles are orthogonal or not ` ` `  `#include ` `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 `

Output:

```Given circles are orthogonal.
```

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.