우리는 두 개의 원이 있습니다. 그 둘의 중심은 원점이다. 이 두 원의 반지름이 주어집니다. 그들은 r 및 R, R> r입니다. 또 다른 원이 있습니다. 반지름(r1)과 중심점이 주어지면 그 점이 처음 두 개의 원으로 형성된 고리 내부에 있는지 확인해야 합니다.
우리는 이것을 피타고라스 정리를 사용하여 풀 수 있습니다. 원과 원점의 중심으로부터의 거리를 계산합니다. 그런 다음 (distance – r1)>=r 및 (distance – r1) <=R이면 둘 다 참이면 원이 링 안에 있습니다.
예
#include <iostream> #include <cmath> using namespace std; bool isInside(int r, int R, int r1, int x, int y) { int dis = sqrt(x*x+y*y); return (dis-r1 >= R && dis+r1 <= r); } int main() { int r = 8, R = 4, r1 = 2, x = 6, y = 0; if (isInside(r, R, r1, x, y)) cout << "Circle is inside the ring." << endl; else cout << "Circle is not inside the ring." << endl; }
출력
Circle is inside the ring.