Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Kiểm tra đường tròn có nằm hoàn toàn trong vòng tròn tâm đồng tâm trong C++


Cho hai đường tròn cùng tâm tại gốc tọa độ. Bán kính của chúng là r và R (với R > r). Một đường tròn thứ ba với bán kính r1 và tâm (x, y) cũng cho trước. Ta phải kiểm tra xem đường tròn thứ ba có nằm hoàn toàn trong vùng vòng tròn (khoảng giữa hai đường tròn tâm đồng tâm) hay không.

Kiểm tra đường tròn có nằm hoàn toàn trong vòng tròn tâm đồng tâm trong C++

Ta giải quyết bằng định lý Pythagore: tính khoảng cách từ tâm đường tròn thứ ba đến gốc tọa độ. Nếu (khoảng_cách - r1) >= r và (khoảng_cách + r1) <= R thì đường tròn nằm trong vòng tròn.

Ví dụ

#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;
}

Kết quả

Circle is inside the ring.