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

โปรแกรมหาเส้นรอบวงนอกของรูปหลายเหลี่ยมปกติใน C++

คำอธิบายปัญหา

ให้จำนวนด้าน N และความยาวด้าน A ของรูปหลายเหลี่ยมปกติ หารัศมีและพื้นที่ของวงกลมล้อมรอบ (circumcircle)

สูตร

  • รัศมี r = A / √(2(1 - cos(360°/N)))
  • พื้นที่ = π × r²

การนำสูตรมาใช้

มุมกลาง = 360°/N
จากกฎโคไซน์: A² = r² + r² - 2r²cos(360°/N) = 2r²(1-cos(360°/N))
→ r = A / √(2(1-cos(360°/N)))

ตัวอย่าง

N=5, A=6 → r ≈ 5.10, Area ≈ 81.71

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

#include <bits/stdc++.h>
using namespace std;

void calcCircumcircle(float n, float a) {
    // cos ใน C++ ใช้ radian ต้องแปลง
    float angle = 360.0 / n;
    float rad = angle * M_PI / 180.0;
    
    float r = a / sqrt(2 * (1 - cos(rad)));
    float area = M_PI * r * r;
    
    cout << "Radius = " << r << endl;
    cout << "Area = " << area << endl;
}

int main() {
    float n = 5, a = 6;
    calcCircumcircle(n, a);
    return 0;
}

ผลลัพธ์

Radius = 5.1039
Area = 81.71

หมายเหตุ

  • ฟังก์ชัน cos() ใน <cmath> ใช้ radian ต้องแปลงจากองศา
  • M_PI 定義在 <cmath> (อาจต้อง define _USE_MATH_DEFINES ใน Windows)