Cho hai đường tròn (tâm và bán kính). Kiểm tra đường tròn nhỏ có nằm hoàn toàn trong đường tròn lớn hay không. 3 trường hợp:
- Hoàn toàn bên trong, không chạm: khoảng cách tâm + r_small < r_big.
- Bên trong và tiếp xúc: khoảng cách tâm + r_small = r_big.
- Một phần bên ngoài: khoảng cách tâm + r_small > r_big.
Tính khoảng cách tâm bằng định lý Pythagore, so sánh với bán kính.
Ví dụ
#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 circumference" << 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);
}
Kết quả
Completely inside the bigger circle