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

ตรวจสอบว่าวงกลมอยู่ในขอบเขตระหว่างสองวงกลม同心 (Concentric) หรือไม่ ใน Python


ปัญหา

ให้สองวงกลม同心 มีรัศมี r1 (นอก) และ r2 (ใน) ให้วงกลมที่ 3 มีศูนย์กลางที่ (x, y) และรัศมี r ตรวจสอบว่าวงกลมที่ 3 อยู่ภายในขอบเขตระหว่างสองวงกลม同心หรือไม่

เงื่อนไข

ระยะห่างจากศูนย์กลางถึงจุด (x,y) คือ d = sqrt(x² + y²)

  • วงกลมที่ 3 ต้องไม่ล้ำออกนอกรัศมี r1: d + r <= r1
  • วงกลมที่ 3 ต้องไม่ล้ำเข้าในรัศมี r2: d - r >= r1 - r2

ตัวอย่าง

r1=4, r2=2, coord=(3,0), r=1 → d=3, 3+1=4≤4, 3-1=2≥2 → True

โค้ดตัวอย่าง

from math import sqrt

def solve(r1, r2, coord, r):
    d = sqrt(coord[0]**2 + coord[1]**2)
    return d + r <= r1 and d - r >= r1 - r2

print(solve(4, 2, (3, 0), 1))  # True

อินพุต / เอาต์พุต

Input:  4, 2, (3, 0), 1
Output: True