ในบทเรียนนี้ เราจะเขียนโปรแกรมหาพื้นที่ส่วนโค้งวงกลม (Circular Segment)
Circular Segment คืออะไร?
เมื่อลากเสตระยะ (Chord) ในวงกลม จะแบ่งวงกลมเป็น 2 ส่วน:
- Minor Segment = ส่วนน้อย (มุมศูนย์กลาง < 180°)
- Major Segment = ส่วนมาก (มุมศูนย์กลาง > 180°)
สูตรพื้นที่ Segment
พื้นที่ Sector − พื้นที่สามเหลี่ยม
Area = πr²(θ/360) - ½r²sin(θ)
โดย θ = มุมศูนย์กลาง (องศา) r = รัศมี
ตัวอย่างโค้ด C++
#include <bits/stdc++.h>
using namespace std;
const float PI = 3.14159f;
float area_of_segment(float radius, float angle_deg) {
float area_sector = PI * radius * radius * (angle_deg / 360.0f);
float area_triangle = 0.5f * radius * radius * sin(angle_deg * PI / 180.0f);
return area_sector - area_triangle;
}
int main() {
float radius = 10.0f, angle = 90.0f;
cout << "Area of minor segment = "
<< area_of_segment(radius, angle) << endl;
cout << "Area of major segment = "
<< area_of_segment(radius, 360.0f - angle);
return 0;
}
ผลลัพธ์
Area of minor segment = 28.5397 Area of major segment = 285.619
การตรวจสอบ
r=10, θ=90°
Sector = π×100×¼ = 78.53975
Triangle = ½×100×sin(90°) = 50
Segment = 78.53975 - 50 = 28.53975 ✓
Major = พื้นที่วงกลม - Minor = 314.159 - 28.5397 = 285.6193 ✓