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

C++에서 원에 대한 좌표의 사분면 찾기

<시간/>

우리는 하나의 원(중심 좌표와 반경)을 가지고 있고, 다른 주어진 점(x, y)의 사분면은 원의 중심에 대해 놓여 있어야 합니다. 이것이 원에 있으면 사분면을 인쇄하고 그렇지 않으면 오류를 인쇄합니다. 포인트가 외부에 있기 때문입니다.

원의 중심이 (h, k)이고 점의 좌표가 (x, y)라고 가정합니다. 우리는 원의 방정식이 −

라는 것을 알고 있습니다.

(𝑥−ℎ) 2 +(𝑦−𝑘) 2 +𝑟 2 =0

이제 결과를 결정할 수 있는 몇 가지 조건이 있습니다.

𝑖𝑓 (𝑥−ℎ) 2 +(𝑦−𝑘) 2 > 𝑟, 𝑡ℎ𝑒𝑛 𝑡ℎ𝑒 𝑛𝑜𝑖𝑠 𝑜𝑢𝑡𝑠𝑖𝑑𝑒

𝑖𝑓 (𝑥−ℎ) 2 +(𝑦−𝑘) 2 =0, 𝑡ℎ𝑒𝑛 𝑡ℎ𝑒 𝑝𝑜𝑖𝑛𝑡 𝑖𝑠 𝑜𝑛 𝑡ℎ𝑒 𝑐𝑖𝑟

𝑖𝑓 (𝑥−ℎ) 2 +(𝑦−𝑘) 2 <𝑟, 𝑡ℎ𝑒𝑛 𝑡ℎ𝑒 𝑝𝑜𝑖𝑠 𝑖𝑛𝑠𝑖𝑖𝑒𝐡❗

예시

#include<iostream>
#include<cmath>
using namespace std;
int getQuadrant(int h, int k, int rad, int x, int y) {
   if (x == h && y == k)
      return 0;
   int val = pow((x - h), 2) + pow((y - k), 2);
   if (val > pow(rad, 2))
      return -1;
   if (x > h && y >= k)
      return 1;
   if (x <= h && y > k)
      return 2;
   if (x < h && y <= k)
      return 3;
   if (x >= h && y < k)
      return 4;
}
int main() {
   int h = 0, k = 3;
   int rad = 2;
   int x = 1, y = 4;
   int ans = getQuadrant(h, k, rad, x, y);
   if (ans == -1)
      cout << "Point is Outside of the circle" << endl;
   else if (ans == 0)
      cout << "Present at the center" << endl;
   else
      cout << ans << " Quadrant" << endl;
}

출력

1 Quadrant