문제
풀이
1)각 터렛의 좌표와 반지름이 주어지고 이에 대한 원의 접점을 구하라는 뜻이다.
2)두 원의 반지름 r1, r2
두 원의 중심 사이의 거리 d
두 원의 접점이 생길 수 있는 경우의 수는 4개
1) 두 원의 접점이 무수히 많은 경우
: 두 원의 크기가 같은 경우 : d=0
2)두 원의 접점이 0개인 경우
:동심원인 경우 겹치는 부분이 없다 : d=o
:r1, r2, d중에서 가장 큰수가 나머지 두 수의 합보다 큰 경우
3)두 원의 접점이 1개인 경우
: 외접 r1 + r2 = d
: 내접 r1 - r2 = d
4)두 원의 접점이 2개인 경우
: r1 - r2 <d < r1 + r2
import math
T = int(input())
for _ in range(T):
x1, y1, r1, x2, y2, r2 = map(int, input().split())
d = math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)
if x1 == x2 and y1 == y2: #원의 중심이 같을때
if r1 == r2:
print(-1)
else:
print(0)
else: #원의 중심이 같지 않을때
if r1 > d + r2 or r2 > d + r1 or d > r1 + r2: #r1,r2,d중에서 가장 큰 수가 나머지 두 수의 합보다 큰 경우
print(0)
elif abs(r1 - r2) == d or r1 + r2 == d: #외접,내접일 경우
print(1)
else: # 그밖의 경우
print(2)