ルーロー三角形の面積の求め方|公式の導出とC++での計算例
本記事では、下図のようなルーロー三角形の面積を求める方法を解説します。ルーロー三角形の内部には一辺の長さが等しい正三角形が含まれており、その高さを h とします。この図形は、正三角形の各頂点を中心とした3つの円が重なり合った部分(共通部分)として作られます。

ルーロー三角形とは
ルーロー三角形は、正三角形の3つの頂点をそれぞれ中心とし、頂点間の距離を半径とする3つの円の交わりでできる図形です。どの方向から測っても幅が一定になる「定幅図形」の最も簡単な例として知られており、マンホールの蓋や一部の工具などにも応用されています。
面積の導出方法
ルーロー三角形の面積は、3つの扇形(おうぎ形)に分解して考えると求めやすくなります。各扇形の中心角は60度(π/3 ラジアン)、半径は h なので、それぞれの面積は次のとおりです。

この扇形を3つ足し合わせると、中央にある正三角形の領域が3回重複して数えられてしまいます。そこで、余分な2回分の正三角形の面積(各 (√3/4)h²)を差し引く必要があります。以上を整理すると、最終的な面積は次の公式で表されます。

つまり、面積 = ((π − √3) / 2) × h² となります。
C++による実装例
上記の公式をC++のプログラムで実装すると、以下のようになります。入力値 h が負の場合は無効な値として -1 を返すようにしています。
#include <iostream>
#include <cmath>
using namespace std;
float areaReuleaux(float h) {
if (h < 0) //if h is negative it is invalid
return -1;
float area = ((3.1415 - sqrt(3)) * h * h)/2;
return area;
}
int main() {
float height = 6;
cout << "Area of Reuleaux Triangle: " << areaReuleaux(height);
}実行結果
高さ h = 6 の場合、プログラムを実行すると次の出力が得られます。
Area of Reuleaux Triangle: 25.3701
このように、ルーロー三角形の面積は高さ h さえわかれば、簡単な公式ひとつで計算できます。幾何学的な性質を理解したうえで、ぜひプログラムでも試してみてください。
-
C++で平行四辺形に内接する三角形の面積を計算する方法
図形の面積とは、その図形が二次元平面上で占める広さのことです。三角形は、3つの辺を持つ多角形です。平行四辺形は、向かい合う2組の辺がそれぞれ平行で、長さも等しい四角形です。問題の概要このプログラムでは、底辺と高さがわかっている平行四辺形を扱います。この平行四辺形の中には、平行四辺形と同じ底辺を共有する三角形が内接しています。与えられた底辺と高さの値を使って、この三角形の面積を計算することが目的です。三角形の面積の公式平行四辺形の底辺をそのまま使い、平行四辺形と同じ高さを持つ三角形の面積は、次の公式で求められます。面積 = ½ × 底辺(b) × 高さ(h)つまり、面積 = 0.5 × b ×
-
Pythonで点のリストから作れる最大の三角形の面積を求める方法
平面上に与えられた点のリストの中から、任意の3点を選んで作ることができる三角形のうち、最も大きな面積を持つものを求める問題です。例えば、入力が [[0,0],[0,1],[1,0],[0,2],[2,0]] の場合、出力は 2 となります。解法のアプローチこの問題は、すべての3点の組み合わせについて三角形の面積を計算し、その最大値を求めることで解けます。手順は以下の通りです。結果を格納する変数 res を 0 で初期化する点のリストのサイズを N とする三重ループで、i、j、k の3つのインデックスの組み合わせをすべて列挙する(i < j < k)各組み合わせに対して、3点の座標