Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++로 원형 세그먼트(활꼴)의 넓이를 구하는 프로그램

이 튜토리얼에서는 C++를 사용하여 원형 세그먼트(circular segment)의 넓이를 구하는 방법을 알아보겠습니다.

원형 세그먼트란?

원 안에 하나의 현(chord)을 그으면 원은 두 개의 영역으로 나뉩니다. 바로 큰 세그먼트(major segment)작은 세그먼트(minor segment)입니다. 원의 반지름과 작은 세그먼트를 이루는 중심각이 주어졌을 때, 두 세그먼트의 넓이를 각각 계산해야 합니다.

계산 공식

세그먼트의 넓이는 다음과 같은 과정으로 구할 수 있습니다.

  • 부채꼴(sector)의 넓이 = π × r² × (θ / 360)
  • 삼각형의 넓이 = (1/2) × r² × sin(θ)
  • 세그먼트의 넓이 = 부채꼴의 넓이 − 삼각형의 넓이

예제 코드

#include <bits/stdc++.h>
using namespace std;
float pi = 3.14159;
// 세그먼트의 넓이를 구하는 함수
float area_of_segment(float radius, float angle){
    float area_of_sector = pi * (radius * radius)*(angle / 360);
    float area_of_triangle = (float)1 / 2 *(radius * radius) *
       sin((angle * pi) / 180);
    return area_of_sector - area_of_triangle;
}
int main() {
    float radius = 10.0, angle = 90.0;
    cout << "Area of minor segment = "
       << area_of_segment(radius, angle) << endl;
    cout << "Area of major segment = "
       << area_of_segment(radius, (360 - angle));
    return 0;
}

실행 결과

Area of minor segment = 28.5397
Area of major segment = 285.619

코드 설명

area_of_segment 함수는 반지름과 중심각(도 단위)을 매개변수로 받습니다. 먼저 부채꼴의 넓이를 계산한 뒤, 삼각함수 sin()을 활용해 현과 두 반지름이 이루는 삼각형의 넓이를 구합니다. 두 값의 차가 곧 세그먼트의 넓이가 됩니다.

메인 함수에서는 반지름 10, 중심각 90도를 기준으로 작은 세그먼트의 넓이를 구하고, 전체 원의 각도인 360도에서 중심각을 뺀 값(270도)을 이용해 큰 세그먼트의 넓이를 계산합니다. 두 결과의 합이 원 전체의 넓이(π × r² ≈ 314.159)와 일치하는 것을 확인할 수 있습니다.