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

C言語で解く:円に内接する正方形の中に描ける最大のルーロー三角形

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

「定幅」とは、図形を挟む2本の平行な支持線の間隔が、支持線の向きに関わらず常に一定であることを意味します。これは、図形のあらゆる方向の直径が等しいことと同じです。

ルーロー三角形の性質

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

ルーロー三角形の作り方

1つの頂点を中心として、正三角形の一辺を半径とする円弧を描きます。これを3つの頂点それぞれについて行うことで、ルーロー三角形が構成できます。

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

正三角形を基礎とし、その一辺の長さを h とすると、ルーロー三角形の面積 A は次の式で求められます。

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

問題:円に内接する正方形の中の最大のルーロー三角形

ここでの課題は、「円に内接する正方形」の中に収まる最大のルーロー三角形の面積を求めることです。

ルーロー三角形の面積は 0.70477 × b² で表されます。ここで b は、ルーロー三角形を挟む平行な支持線同士の距離(幅)です。

このとき、平行な支持線間の距離は正方形の一辺の長さ a に等しくなります。したがって、最大のルーロー三角形の面積は次のように表せます。

A = 0.70477 × a²

考え方の解説

正方形の一辺を a、円の半径を r とすると、正方形の対角線は円の直径に一致するため、次の関係が成り立ちます。

a√2 = 2r
a = √2 × r

ルーロー三角形においては h = a = √2 × r となるため、面積は以下のように計算できます。

A = 0.70477 × h² = 0.70477 × 2 × r²

計算例

入力:r = 6
出力:50.7434

C言語による実装例

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

実行結果

The area is : 50.743439

このように、円の半径 r が分かれば、0.70477 × 2 × r² というシンプルな式だけで、円に内接する正方形の中に収まる最大のルーロー三角形の面積を即座に求めることができます。

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

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

  2. 半円に内接する長方形に内接する円の面積の求め方

    半径 R の半円が与えられているとします。この半円の中に、長さ l、幅 b の長方形が内接しており、さらにその長方形の中に半径 r の円が内接しています。本記事では、この内側の円の面積を求める手順を、数式の導出からC++による実装例までわかりやすく解説します。 半円に内接する最大の長方形 半円に内接する長方形は、底辺が半円の直径上にあり、上側の2つの頂点が半円周上にあります。このとき、三平方の定理(ピタゴラスの定理)より、l と b の間には次の関係が成り立ちます。 (l / 2)2 + b2 = R2 長方形の面積 A = l × b を最大化する条件を求めると、微分計算により次の値が