Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 원이 다른 원 안에 있는지 확인하십시오.

<시간/>

두 개의 원(중심점과 반지름 값)이 있다고 가정하고 한 원이 다른 원 안에 맞는지 확인해야 합니다. 세 가지 가능한 원인이 있습니다.

  • 작은 원은 서로 닿지 않고 큰 원 안에 완전히 있습니다. 이 경우 중심 사이의 거리와 작은 반지름의 합은 큰 반지름보다 작습니다. 따라서 더 작은 것이 더 큰 것 안에 있을 것입니다.

  • 두 번째 경우는 작은 원이 큰 원 안에 있지만 큰 원의 둘레에도 닿는 경우입니다.

  • 세 번째 경우는 작은 원의 일부가 큰 원 안에 있는 경우입니다.

이를 해결하려면 두 중심 사이의 거리를 찾은 다음 거리와 반지름 값을 사용하여 해당 경우를 결정해야 합니다.

예시

#include <iostream>
#include <cmath>
using namespace std;
void isCircleInside(int x_big, int y_big, int x_small, int y_small, int r_big, int r_small) {
   int distSq = sqrt(((x_big - x_small) * (x_big - x_small)) + ((y_big - y_small) * (y_big - y_small)));
   if (distSq + r_small == r_big)
      cout << "Inside the bigger circle, touching circimferene" << endl;
      else if (distSq + r_small < r_big)
         cout << "Completely inside the bigger circle" << endl;
   else
      cout << "Not inside the bigger circle" << endl;
}
int main() {
   int x1 = 10, y1 = 8;
   int x2 = 1, y2 = 2;
   int r1 = 30, r2 = 10;
   isCircleInside(x1, y1, x2, y2, r1, r2);
}

출력

Completely inside the bigger circle