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

C++로 삼각형 내접원(내원)의 반지름 구하기

이 튜토리얼에서는 주어진 삼각형의 내접원(내원) 반지름을 구하는 C++ 프로그램을 살펴보겠습니다.

여기서는 삼각형의 세 변의 길이가 입력으로 주어지며, 우리의 목표는 해당 삼각형 안에 그려진 내접원의 반지름을 계산하는 것입니다.

내접원 반지름 공식

내접원의 반지름은 아래 공식으로 구할 수 있습니다.

반지름 = 삼각형의 넓이 ÷ 삼각형의 반둘레

여기서 반둘레(semi-perimeter)란 세 변의 길이를 모두 더한 값의 절반을 의미하며, 삼각형의 넓이는 세 변의 길이만으로 넓이를 구할 수 있는 헤론의 공식(Heron's Formula)을 활용해 계산합니다.

예제 코드

#include <bits/stdc++.h>
using namespace std;
// 내접원의 반지름을 계산하는 함수
float calc_radius(float a, float b, float c) {
   if (a < 0 || b < 0 || c < 0)
      return -1;
   // 삼각형의 반둘레
   float p = (a + b + c) / 2;
   // 헤론의 공식을 이용한 삼각형의 넓이
   float area = sqrt(p * (p - a) * (p - b) * (p - c));
   // 반지름 = 넓이 / 반둘레
   float radius = area / p;
   // 반지름 반환
   return radius;
}
int main() {
   float a = 4, b = 7, c = 9;
   cout << calc_radius(a, b, c) << endl;
   return 0;
}

출력 결과

1.34164

코드 설명

위 코드의 동작 과정을 단계별로 정리하면 다음과 같습니다.

1. 먼저 입력받은 세 변의 길이 중 하나라도 음수인 경우 유효하지 않은 삼각형이므로 -1을 반환합니다.
2. 세 변의 합을 2로 나누어 반둘레(p)를 구합니다.
3. 헤론의 공식 √(p × (p-a) × (p-b) × (p-c))를 이용해 삼각형의 넓이를 계산합니다.
4. 마지막으로 넓이를 반둘레로 나누어 내접원의 반지름을 구하고 결과를 반환합니다.

예제에서 사용한 변의 길이 4, 7, 9를 대입하면 반둘레는 10, 넓이는 약 13.4164가 되고, 따라서 내접원의 반지름은 약 1.34164로 계산됩니다.