Cho một đường tròn (tâm (h, k), bán kính r) và một điểm (x, y). Xác định điểm nằm ở góc phần tư nào so với tâm đường tròn, nếu điểm nằm trong đường tròn thì in góc phần tư, ngược lại báo lỗi vì điểm nằm ngoài.
Phương trình đường tròn: (x-h)² + (y-k)² = r²
Các trường hợp:
- Nếu
(x-h)² + (y-k)² > r²→ điểm ngoài đường tròn. - Nếu
(x-h)² + (y-k)² = r²→ điểm trên đường tròn. - Nếu
(x-h)² + (y-k)² < r²→ điểm trong đường tròn.
Ví dụ
#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;
}
Kết quả
1 Quadrant