在 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.