檢查給定圓是否完全位於 C++ 中由兩個同心圓形成的環內


我們有兩個圓。它們的圓心都在原點。這兩個圓的半徑已知。它們是 r 和 R,R > r。還有一個圓。它的半徑 (r1) 和圓心點已知,我們需要檢查該點是否在由前兩個圓形成的環內。

我們可以使用勾股定理來解決這個問題。計算圓心與原點之間的距離。然後,如果 (distance – r1) >= r 且 (distance – r1) <= R,如果兩者都為真,則圓在環內。

示例

線上演示

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

輸出

Circle is inside the ring.

更新於: 2019年10月22日

897 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告