Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ตรวจสอบว่า Circle อยู่ภายใน Ring ที่เกิดจาก Concentric Circles สองวงใน C++

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

ตรวจสอบว่า Circle อยู่ภายใน Ring ที่เกิดจาก Concentric Circles สองวงใน C++

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