เรามีสองวงกลมที่มีจุดศูนย์กลางตรงกันที่จุดกำเนิด (Origin) รัศมีของทั้งสองวงกลมคือ r และ R โดยที่ R > r อีกวงกลมหนึ่งมีรัศมี r1 และจุดศูนย์กลางที่กำหนด เราต้องตรวจสอบว่าวงกลมนั้นอยู่ภายใน Ring (แหวน) ที่เกิดจากสองวงกลมแรกหรือไม่

เราสามารถแก้ปัญหานี้ได้โดยใช้ทฤษฎีบทพีทาโกรัส คำนวณระยะห่างจากจุดศูนย์กลางของวงกลมไปยังจุดกำเนิด จากนั้นตรวจสอบเงื่อนไข: ถ้า (distance - r1) >= r และ (distance + r1) <= R ทั้งคู่เป็นจริง แสดงว่าวงกลมอยู่ภายในแหวน
ตัวอย่างโค้ด C++
#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.