C言語:楕円内に内接する正方形に内接する最大のルーロー三角形の求め方
ルーロー三角形(Reuleaux triangle)とは、3つの円の共通部分から形成される図形です。各円の中心は、他の2つの円の境界上に位置しています。その境界は定幅曲線と呼ばれ、円以外では最も単純でよく知られている定幅曲線です。定幅とは、平行な2つの支持線の間隔が、その向きにかかわらず常に一定であることを意味します。

ルーロー三角形の境界は、正三角形に基づく定幅曲線です。一辺上のすべての点は、対向する頂点から等距離にあります。

ルーロー三角形の作図方法
正三角形の各頂点を中心として、他の2頂点を通る円弧を描くことで、ルーロー三角形を作図できます。
ルーロー三角形の面積公式
正三角形に基づく曲線で、三角形の一辺の長さを h とすると、ルーロー三角形の面積は次の式で表されます。
A = (π × h²) / 2 − 2 ×(正三角形の面積)= (π − √3) × h² / 2 = 0.70477 × h²
楕円内に内接する正方形に内接する最大のルーロー三角形


楕円内に内接する最大の正方形
正方形が楕円に内接する場合を考えます。
楕円の方程式は x²/a² + y²/b² = 1
x = y とおくと、
x²/a² + x²/b² = 1
したがって、
x = √(a² + b²)/ab
y = √(a² + b²)/ab
よって、この正方形の面積は A = 4(a² + b²)/a²b² となります。

正方形内の最大のルーロー三角形
ルーロー三角形の面積は 0.70477 × b² です。ここで b は、ルーロー三角形を支持する平行線間の距離です。
平行線間の距離は正方形の一辺、つまり a に等しいため、
ルーロー三角形の面積は A = 0.70477 × a² となります。
それでは、具体的な例を見てみましょう。
入力: a = 5, b = 4
出力: 0.0722389
説明
楕円内に内接する正方形の一辺は、x = √(a² + b²)/ab です。
ルーロー三角形については、h = x = √(a² + b²)/ab となります。
したがって、ルーロー三角形の面積は A = 0.70477 × h² = 0.70477 × ((a² + b²)/a²b²) です。
例(C言語プログラム)
#include <stdio.h>
#include <math.h>
int main() {
float a = 6, b = 8;
float h = sqrt(((pow(a, 2) + pow(b, 2))/ (pow(a, 2) * pow(b, 2))));
float area = 0.70477 * pow(h, 2);
printf("The area is : %f", area);
return 0;
}
出力
The area is : 0.030589
-
半円に内接する正方形の中に収まる最大のルーロー三角形の面積を求める方法
本記事では、半円に内接する正方形の中に内接する最大のルーロー三角形の面積を求める方法を解説します。半円の半径を R、正方形の一辺の長さを a、ルーロー三角形の高さを h として考えます。数学的な導出まず、半径 R の半円に内接する正方形の一辺の長さは、次の式で表されます。a = 2R / √5次に、ルーロー三角形の高さは、この正方形の一辺と等しくなります。したがって、a = h が成り立ちます。一般に、高さ h のルーロー三角形の面積は、以下の公式で求められます。面積 = ((π − √3) × h²) / 2ここに h = 2R / √5 を代入すると、最終的な面積の式は次のようになります。
-
ルーロー三角形の面積の求め方|公式の導出とC++での計算例
本記事では、下図のようなルーロー三角形の面積を求める方法を解説します。ルーロー三角形の内部には一辺の長さが等しい正三角形が含まれており、その高さを h とします。この図形は、正三角形の各頂点を中心とした3つの円が重なり合った部分(共通部分)として作られます。ルーロー三角形とはルーロー三角形は、正三角形の3つの頂点をそれぞれ中心とし、頂点間の距離を半径とする3つの円の交わりでできる図形です。どの方向から測っても幅が一定になる「定幅図形」の最も簡単な例として知られており、マンホールの蓋や一部の工具などにも応用されています。面積の導出方法ルーロー三角形の面積は、3つの扇形(おうぎ形)に分解して考える