C++で3辺の長さが与えられた三角形の外接円の面積を求める方法
C++で三角形の外接円の面積を計算する
本記事では、3辺の長さが分かっている三角形について、その外接円(3つの頂点すべてを通る円)の面積をC++で求める方法を解説します。
下図のように、辺ABの長さをa、辺BCの長さをb、辺CAの長さをc、外接円の半径をrとします。

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

具体的な手順は以下の通りです。
- まず、半周長 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) であり、非常に効率的です。
-
C++で与えられた2辺から直角三角形の斜辺を求める方法
この記事では、直角三角形の「高さ H」と「底辺 B」にあたる2つの整数値が与えられたとき、その斜辺を求める方法をC++で解説します。 直角三角形とは、1つの内角が直角(90度)となっている特別な三角形のことです。 まず、具体的な例で問題を確認してみましょう。 入力:B = 5, H = 12 出力:13.00 解法のアプローチ この問題は、ピタゴラスの定理(三平方の定理)を使うことでシンプルに解くことができます。 ピタゴラスの定理とは、「直角三角形の斜辺の2乗は、残りの2辺の2乗の和に等しい」という定理です。 数式で表すと次のようになります。 $H^2\:=\:h^2\:+\:b^2$ つま
-
C++で指定された辺の長さを持つn辺の正多角形の面積を求める方法
この記事では、指定された辺の長さを持つn辺の正多角形の面積を求める問題を取り上げ、図形の面積を計算する公式を導出し、それに基づいたプログラムを作成します。まず、内容を理解しやすくするために、基本事項をおさらいしましょう。基本事項のおさらいn辺の正多角形とは、すべての辺の長さが等しいn個の辺を持つ多角形のことです。例えば、正五角形や正六角形などが挙げられます。面積とは、二次元の図形が占める広がりの大きさを数量的に表したものです。面積公式の導出正多角形の面積を求めるには、図形を構成する個々の三角形の面積を求め、それに辺の数nを掛けます。正多角形は、中心を共有する頂点としてn個の二等辺三角形に分割で