C++
 Computer >> コンピューター >  >> プログラミング >> C++

C++で3辺の長さが与えられた三角形の外接円の面積を求める方法

C++で三角形の外接円の面積を計算する

本記事では、3辺の長さが分かっている三角形について、その外接円(3つの頂点すべてを通る円)の面積をC++で求める方法を解説します。

下図のように、辺ABの長さをa、辺BCの長さをb、辺CAの長さをc、外接円の半径をrとします。

C++で3辺の長さが与えられた三角形の外接円の面積を求める方法

外接円の半径を求める公式

外接円の半径rは、3辺の長さと三角形の面積Sを用いて、次の式で表されます。

C++で3辺の長さが与えられた三角形の外接円の面積を求める方法

具体的な手順は以下の通りです。

  • まず、半周長 s = (a + b + c) / 2 を求めます。
  • ヘロンの公式より、三角形の面積は S = √(s(s − a)(s − b)(s − c)) で計算できます。
  • 半径 r = (a × b × c) / (4S) を求めます。
  • 最後に、外接円の面積 = π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) / (4 * triangle)), 2); // 外接円の面積 πr²
    return area;
}

int main() {
    float a = 4, b = 5, c = 3;
    cout << "Area : " << area(a, b, c);
}

実行結果

Area : 19.6349

計算内容の解説

この例では、a = 4、b = 5、c = 3 の三角形を入力しています。半周長は s = (4 + 5 + 3) / 2 = 6 となり、ヘロンの公式による三角形の面積は √(6 × 2 × 1 × 3) = 6 です。したがって、外接円の半径は r = (4 × 5 × 3) / (4 × 6) = 2.5 となり、外接円の面積は π × 2.5² ≒ 19.635 となります。

ちなみに、3辺が3・4・5の組み合わせは直角三角形を構成するため、外接円の中心は斜辺の中点に位置し、半径は斜辺の半分(5 ÷ 2 = 2.5)に一致します。これは上記の計算結果と一致しており、公式の正しさを裏付けています。

また、コードでは負の辺長が渡された場合に不正な入力として −1 を返すバリデーションを行っています。処理全体が定数回の四則演算と平方根の計算で完結するため、計算量は O(1) であり、非常に効率的です。

  1. C++で与えられた2辺から直角三角形の斜辺を求める方法

    この記事では、直角三角形の「高さ H」と「底辺 B」にあたる2つの整数値が与えられたとき、その斜辺を求める方法をC++で解説します。 直角三角形とは、1つの内角が直角(90度)となっている特別な三角形のことです。 まず、具体的な例で問題を確認してみましょう。 入力:B = 5, H = 12 出力:13.00 解法のアプローチ この問題は、ピタゴラスの定理(三平方の定理)を使うことでシンプルに解くことができます。 ピタゴラスの定理とは、「直角三角形の斜辺の2乗は、残りの2辺の2乗の和に等しい」という定理です。 数式で表すと次のようになります。 $H^2\:=\:h^2\:+\:b^2$ つま

  2. C++で指定された辺の長さを持つn辺の正多角形の面積を求める方法

    この記事では、指定された辺の長さを持つn辺の正多角形の面積を求める問題を取り上げ、図形の面積を計算する公式を導出し、それに基づいたプログラムを作成します。まず、内容を理解しやすくするために、基本事項をおさらいしましょう。基本事項のおさらいn辺の正多角形とは、すべての辺の長さが等しいn個の辺を持つ多角形のことです。例えば、正五角形や正六角形などが挙げられます。面積とは、二次元の図形が占める広がりの大きさを数量的に表したものです。面積公式の導出正多角形の面積を求めるには、図形を構成する個々の三角形の面積を求め、それに辺の数nを掛けます。正多角形は、中心を共有する頂点としてn個の二等辺三角形に分割で