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

반원에 내접하는 정사각형 안에서 가장 큰 륄로(Reuleaux) 삼각형의 넓이 구하기

문제 개요

이 글에서는 반원에 내접하는 정사각형 안에 그릴 수 있는 가장 큰 륄로(Reuleaux) 삼각형의 넓이를 구하는 방법을 알아봅니다. 륄로 삼각형은 세 개의 원호로 이루어진 곡선으로, 어느 방향으로 측정하든 폭이 일정하게 유지되는 특수한 도형입니다.

편의를 위해 다음과 같이 기호를 정의합니다.

  • 반원의 반지름: R
  • 정사각형의 한 변의 길이: a
  • 륄로 삼각형의 높이: h

넓이 공식 유도하기

먼저, 반지름이 R인 반원에 내접하는 정사각형의 한 변의 길이는 다음과 같습니다.

a = 2R / √5

정사각형 안에 내접하는 륄로 삼각형의 높이는 정사각형의 변의 길이와 같습니다. 따라서 다음 관계가 성립합니다.

a = h = 2R / √5

높이가 h인 륄로 삼각형의 넓이 공식은 다음과 같습니다.

A = ((π − √3) / 2) × h²

여기에 h = 2R / √5를 대입하여 정리하면 최종 공식을 얻을 수 있습니다.

A = (π − √3) × (2R / √5)² / 2 = 2R²(π − √3) / 5

C++ 예제 코드

위 공식을 C++ 코드로 구현하면 다음과 같습니다. 반지름 r이 음수일 경우 유효하지 않은 입력으로 처리하여 -1을 반환하도록 했습니다.

#include <iostream>
#include <cmath>
using namespace std;

float areaReuleaux(float r) { // 반원의 반지름은 r
    if (r < 0) // r이 음수이면 유효하지 않음
        return -1;
    float area = ((3.1415 - sqrt(3)) * (2*r/(sqrt(5))) * (2*r/(sqrt(5))))/2;
    return area;
}

int main() {
    float rad = 8;
    cout << "Area of Reuleaux Triangle: " << areaReuleaux(rad);
}

실행 결과

Area of Reuleaux Triangle: 36.0819

반지름이 8인 반원의 경우, 내접하는 정사각형 안에 그릴 수 있는 가장 큰 륄로 삼각형의 넓이는 약 36.0819임을 확인할 수 있습니다.