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

C言語で解く!正方形内に収まる最大のルーロー三角形の面積

ルーロー三角形とは、3つの円の共通部分によって形成される図形です。それぞれの円の中心は、他の2つの円の境界上に位置します。この図形の境界は「定幅曲線」と呼ばれ、円を除けば最も単純で有名な定幅曲線です。

「定幅」とは、どのような向きであっても、図形を挟む2本の平行な支持線の間隔が常に一定であることを意味します。これは、あらゆる方向の幅(直径)が等しいことに起因します。

C言語で解く!正方形内に収まる最大のルーロー三角形の面積

ルーロー三角形の構成

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

C言語で解く!正方形内に収まる最大のルーロー三角形の面積

作図するには、正三角形の各頂点を中心として、頂点間の距離を半径とする円弧を描き、それらをつなぎ合わせます。

ルーロー三角形の面積公式

一辺の長さが h の正三角形を基礎とする場合、ルーロー三角形の面積 A は次の式で表されます。

A = (π × h2) / 2 − 2 × (正三角形の面積) = (π − √3) × h2 / 2 = 0.70477 × h2

正方形内の最大のルーロー三角形

C言語で解く!正方形内に収まる最大のルーロー三角形の面積

それでは、具体的な例を見てみましょう。

入力:a = 6
出力:25.3717

解説

ルーロー三角形の面積は 0.70477 × b2 で表されます。ここで b は、ルーロー三角形を挟む平行な2つの支持線の間隔(幅)です。

この平行線の間隔は、正方形の一辺の長さ、すなわち a に等しくなります。

したがって、正方形内に収まる最大のルーロー三角形の面積は次のようになります。

A = 0.70477 × a2

C言語による実装例

#include <stdio.h>
#include <math.h>
int main() {
   float a = 6;
   float area = 0.70477 * pow(a, 2);
   printf("The area is : %f",area);
   return 0;
}

実行結果

The area is : 25.371719
  1. 半円に内接する正方形の中に収まる最大のルーロー三角形の面積を求める方法

    本記事では、半円に内接する正方形の中に内接する最大のルーロー三角形の面積を求める方法を解説します。半円の半径を R、正方形の一辺の長さを a、ルーロー三角形の高さを h として考えます。数学的な導出まず、半径 R の半円に内接する正方形の一辺の長さは、次の式で表されます。a = 2R / √5次に、ルーロー三角形の高さは、この正方形の一辺と等しくなります。したがって、a = h が成り立ちます。一般に、高さ h のルーロー三角形の面積は、以下の公式で求められます。面積 = ((π − √3) × h²) / 2ここに h = 2R / √5 を代入すると、最終的な面積の式は次のようになります。

  2. ルーロー三角形の面積の求め方|公式の導出とC++での計算例

    本記事では、下図のようなルーロー三角形の面積を求める方法を解説します。ルーロー三角形の内部には一辺の長さが等しい正三角形が含まれており、その高さを h とします。この図形は、正三角形の各頂点を中心とした3つの円が重なり合った部分(共通部分)として作られます。ルーロー三角形とはルーロー三角形は、正三角形の3つの頂点をそれぞれ中心とし、頂点間の距離を半径とする3つの円の交わりでできる図形です。どの方向から測っても幅が一定になる「定幅図形」の最も簡単な例として知られており、マンホールの蓋や一部の工具などにも応用されています。面積の導出方法ルーロー三角形の面積は、3つの扇形(おうぎ形)に分解して考える