在 C 語言中,如何求解內接於橢圓的正方形內接的最大魯洛三角形?


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

魯洛三角形的邊界是基於等邊三角形的等寬曲線。每條邊的所有點都與對面的頂點等距。

如何構建魯洛三角形

魯洛三角形的公式

如果魯洛三角形的曲線基於等邊三角形,且三角形的邊長為 h,則魯洛三角形的面積是多少

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

內接於橢圓的正方形內接的最大魯洛三角形

內接於橢圓的正方形內接的最大魯洛三角形

內接於橢圓的最大正方形

如果一個正方形內接於橢圓,

橢圓的方程為 x^2/a^2 + y^2/b^2 = 1

如果,x = y

那麼,x^2/a^2 + x^2/b^2 = 1

所以,x = √(a^2 + b^2)/ab

y = √(a^2 + b^2)/ab 那麼面積,A = 4(a^2 + b^2)/a^2b^2

正方形內接的最大魯洛三角形

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

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

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

讓我們舉個例子,

Input: a = 5, b = 4
Output: 0.0722389

解釋

內接於橢圓的正方形的邊長為,x = √(a^2 + b^2)/ab

魯洛三角形,h = x = √(a^2 + b^2)/ab

魯洛三角形的面積,A = 0.70477*h^2 = 0.70477*((a^2 + b^2)/a^2b^2)

示例

#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

更新於: 2019年10月7日

77 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.