There are two circle A and B with their centers C1(x1, y1) and C2(x2, y2) and radius R1 and R2. Task is to check both circles A and B touch each other or not.
Examples :
Input : C1 = (3, 4)
C2 = (14, 18)
R1 = 5, R2 = 8
Output : Circles do not touch each other.
Input : C1 = (2, 3)
C2 = (15, 28)
R1 = 12, R2 = 10
Output : Circles intersect with each other.
Input : C1 = (-10, 8)
C2 = (14, -24)
R1 = 30, R2 = 10
Input : -10 8
14 -24
30 10
Output : Circle touch each other.
Distance between centers C1 and C2 is calculated as
C1C2 = sqrt((x1 - x2)2 + (y1 - y2)2).
There are three condition arises.
1. If C1C2 == R1 + R2
Circle A and B are touch to each other.
2. If C1C2 > R1 + R2
Circle A and B are not touch to each other.
3. If C1C2 < R1 + R2
Circle intersects each other.
C++
#include <bits/stdc++.h>
using namespace std;
int circle( int x1, int y1, int x2,
int y2, int r1, int r2)
{
int distSq = (x1 - x2) * (x1 - x2) +
(y1 - y2) * (y1 - y2);
int radSumSq = (r1 + r2) * (r1 + r2);
if (distSq == radSumSq)
return 1;
else if (distSq > radSumSq)
return -1;
else
return 0;
}
int main()
{
int x1 = -10, y1 = 8;
int x2 = 14, y2 = -24;
int r1 = 30, r2 = 10;
int t = circle(x1, y1, x2,
y2, r1, r2);
if (t == 1)
cout << "Circle touch to"
<< " each other." ;
else if (t < 0)
cout << "Circle not touch"
<< " to each other." ;
else
cout << "Circle intersect"
<< " to each other." ;
return 0;
}
|
Java
import java.io.*;
class GFG
{
static int circle( int x1, int y1, int x2,
int y2, int r1, int r2)
{
int distSq = (x1 - x2) * (x1 - x2) +
(y1 - y2) * (y1 - y2);
int radSumSq = (r1 + r2) * (r1 + r2);
if (distSq == radSumSq)
return 1 ;
else if (distSq > radSumSq)
return - 1 ;
else
return 0 ;
}
public static void main (String[] args)
{
int x1 = - 10 , y1 = 8 ;
int x2 = 14 , y2 = - 24 ;
int r1 = 30 , r2 = 10 ;
int t = circle(x1, y1, x2,
y2, r1, r2);
if (t == 1 )
System.out.println ( "Circle touch to" +
" each other." );
else if (t < 0 )
System.out.println ( "Circle not touch" +
" to each other." );
else
System.out.println ( "Circle intersect" +
" to each other." );
}
}
|
Python3
def circle(x1, y1, x2, y2, r1, r2):
distSq = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);
radSumSq = (r1 + r2) * (r1 + r2);
if (distSq = = radSumSq):
return 1
elif (distSq > radSumSq):
return - 1
else :
return 0
x1 = - 10
y1 = 8
x2 = 14
y2 = - 24
r1 = 30
r2 = 10
t = circle(x1, y1, x2, y2, r1, r2)
if (t = = 1 ):
print ( "Circle touch to each other." )
elif (t < 0 ):
print ( "Circle not touch to each other." )
else :
print ( "Circle intersect to each other." )
|
C#
using System;
class GFG
{
static int circle( int x1, int y1, int x2,
int y2, int r1, int r2)
{
int distSq = (x1 - x2) * (x1 - x2) +
(y1 - y2) * (y1 - y2);
int radSumSq = (r1 + r2) * (r1 + r2);
if (distSq == radSumSq)
return 1;
else if (distSq > radSumSq)
return -1;
else
return 0;
}
public static void Main ()
{
int x1 = -10, y1 = 8;
int x2 = 14, y2 = -24;
int r1 = 30, r2 = 10;
int t = circle(x1, y1, x2,
y2, r1, r2);
if (t == 1)
Console.WriteLine ( "Circle touch" +
" to each other." );
else if (t < 0)
Console.WriteLine( "Circle not touch" +
" to each other." );
else
Console.WriteLine ( "Circle intersect" +
" to each other." );
}
}
|
PHP
<?php
function circle( $x1 , $y1 , $x2 ,
$y2 , $r1 , $r2 )
{
$distSq = ( $x1 - $x2 ) * ( $x1 - $x2 ) +
( $y1 - $y2 ) * ( $y1 - $y2 );
$radSumSq = ( $r1 + $r2 ) * ( $r1 + $r2 );
if ( $distSq == $radSumSq )
return 1;
else if ( $distSq > $radSumSq )
return -1;
else
return 0;
}
$x1 = -10; $y1 = 8;
$x2 = 14; $y2 = -24;
$r1 = 30; $r2 = 10;
$t = circle( $x1 , $y1 , $x2 ,
$y2 , $r1 , $r2 );
if ( $t == 1)
echo "Circle touch to each other." ;
else if ( $t < 0)
echo "Circle not touch to each other." ;
else
echo "Circle intersect to each other." ;
?>
|
Output :
Circle touch to each other.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
leave a comment
0 Comments