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

C++로 세 변의 길이가 주어진 삼각형의 외접원 넓이 구하기

이 글에서는 세 변의 길이가 주어진 임의의 삼각형에 대해 그 외접원(circumcircle)의 넓이를 구하는 방법을 알아봅니다. 삼각형의 각 변을 AB = a, BC = b, CA = c라고 하고, 외접원의 반지름을 r이라고 하겠습니다.

외접원 반지름 계산 원리

외접원의 반지름 r은 다음 과정을 통해 구할 수 있습니다.

먼저 헤론의 공식(Heron's formula)을 이용해 삼각형의 넓이를 구합니다. 세 변의 길이의 합을 2로 나눈 값을 s(반둘레)라 할 때, 삼각형의 넓이는 다음과 같습니다.

삼각형의 넓이 = √(s × (s − a) × (s − b) × (s − c))

이렇게 구한 삼각형의 넓이와 세 변의 길이를 이용해 외접원의 반지름 r을 계산하고, 마지막으로 원의 넓이 공식인 πr²를 적용하면 외접원의 넓이를 얻을 수 있습니다.

예제 코드

#include <iostream>
#include <cmath>
using namespace std;
float area(float a, float b, float c) {
    if (a < 0 || b < 0 || c < 0) // 값이 음수이면 유효하지 않음
        return -1;
    float s = (a + b + c) / 2;
    float triangle = sqrt(s * (s - a) * (s - b) * (s - c));
    float area = 3.14159 * pow(((a*b*c) / triangle), 2);
    return area;
}
int main() {
    float a = 4, b = 5, c = 3;
    cout << "Area : " << area(a, b, c);
}

실행 결과

Area : 314.159

코드 설명

area() 함수는 다음 순서로 동작합니다.

1. 입력받은 세 변 중 하나라도 음수이면 유효하지 않은 삼각형이므로 -1을 반환합니다.
2. 세 변의 합을 2로 나눠 반둘레 s를 구합니다.
3. 헤론의 공식으로 삼각형의 넓이를 계산합니다.
4. 세 변의 곱을 삼각형의 넓이로 나눈 값을 반지름으로 삼아, πr² 공식으로 외접원의 넓이를 구해 반환합니다.

예제에서는 a = 4, b = 5, c = 3을 대입했으며, 실행 결과 외접원의 넓이로 314.159가 출력되는 것을 확인할 수 있습니다.