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

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

この記事では、直角三角形に内接する正方形の中に描ける最大のルーロー三角形の面積を求める方法を解説します。

まず前提となる条件を整理しましょう。正方形の一辺の長さを「a」、ルーロー三角形の高さを「x」、外側の直角三角形の底辺を「b」、高さを「l」、斜辺を「h」とします。

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

なお、ルーロー三角形とは、正三角形の各頂点を中心として対向する頂点を通る円弧を3つ描くことで得られる図形です。どの方向から測っても幅が一定になる「定幅曲線」として知られており、その高さは生成元となる正三角形の一辺と等しくなります。

正方形の一辺の長さを求める

高さ l、底辺 b の直角三角形に内接する正方形の一辺 a は、相似比の関係から次の公式で表されます。

a = (l × b) / (l + b)

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

ルーロー三角形の面積を求める

ここで重要なのは、この問題におけるルーロー三角形の高さ x が、正方形の一辺 a と一致するという点です。つまり a = x が成り立ちます。

したがって、ルーロー三角形の面積は次の公式で計算できます。

面積 = ((π − √3) × a²) / 2

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

C++による実装例

上記の理論をもとに、実際にC++でプログラムを実装してみましょう。関数には直角三角形の高さ l と底辺 b を渡し、負の値が入力された場合は無効として -1 を返すようにしています。

#include <iostream>
#include <cmath>
using namespace std;

float areaReuleaux(float l, float b) {
    // l と b はそれぞれ直角三角形の高さと底辺
    if (l < 0 || b < 0) // 負の値が入力された場合は無効
        return -1;
    float a = (l * b) / (l + b); // 正方形の一辺を計算
    float area = ((3.1415 - sqrt(3)) * (a) * (a)) / 2; // ルーロー三角形の面積
    return area;
}

int main() {
    float l = 5;
    float b = 12;
    cout << "Area of Reuleaux Triangle: " << areaReuleaux(l, b);
}

実行結果

高さ l = 5、底辺 b = 12 の直角三角形を入力として与えた場合の出力は以下の通りです。

Area of Reuleaux Triangle: 8.77858

このように、直角三角形の寸法から内接する正方形の一辺を導き出し、それをルーロー三角形の高さとして面積公式に代入することで、目的の面積を簡単に求めることができます。

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

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

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

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