在C語言中,計算內接於直角三角形正方形內最大的萊洛三角形?


萊洛三角形是由三個圓盤的交集形成的形狀,每個圓盤的中心都在其他兩個圓盤的邊界上。它的邊界是等寬曲線,是除圓本身之外最簡單、最著名的等寬曲線。等寬意味著每兩條平行的支撐線的距離相同,與它們的朝向無關。因為它的所有直徑都相同。

萊洛三角形的邊界是基於等邊三角形的等寬曲線。邊上的所有點到對頂點的距離都相等。

如何構造萊洛三角形

萊洛三角形的公式

如果萊洛三角形的曲線基於等邊三角形,且三角形的邊長為h,則萊洛三角形的面積為:

A = (π * h2) / 2 – 2 * (Area of equilateral triangle) = (π – √3) * h2 / 2 = 0.70477 * h2

內接於直角三角形正方形內的最大萊洛三角形

內接於直角三角形正方形內的最大萊洛三角形

從上圖中,a = (l*b)/(l+b)

正方形內的最大萊洛三角形

萊洛三角形的面積為0.70477 * b2,其中b是支撐萊洛三角形的平行線之間的距離。

支撐萊洛三角形的平行線之間的距離 = 正方形的邊長,即a

萊洛三角形的面積,A = 0.70477 * a2

讓我們舉個例子來說明這個概念:

Input: l = 3, b = 4, h = 5
Output: 2.07116

解釋

內接於直角三角形的正方形的邊長為,a = (l*b)/(l+b),

在萊洛三角形中,x = a

x = (l*b)/(l+b).

萊洛三角形的面積為,A = 0.70477*x^2 = 0.70477*((l*b)/(l+b))^2

示例

#include <stdio.h>
#include<math.h>
int main() {
   float l = 3,b = 4;
   float x = (l * b) / (l + b);
   float area = 0.70477 * pow(x, 2);
   printf("The area is : %f", area);
   return 0;
}

輸出

The area is : 2.071161

更新於:2019年10月7日

69 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告