Biggest Reuleaux Triangle inscribed within a square which is inscribed within an ellipse in C?


A Reuleaux triangle is a shape formed from the intersection of three circular disks, each having its center on the boundary of the other two. Its boundary is a curve of constant width, the simplest and best known such curve other than the circle itself. Constant width means that the separation of every two parallel supporting lines is the same, independent of their orientation. Because all its diameters are the same.

The boundary of a Reuleaux triangle is a constant width curve based on an equilateral triangle. All points on a side are equidistant from the opposite vertex.

To construct a Reuleaux triangle

Formula for Reuleaux triangle

Area of the Reuleaux Triangle, if curve based on an equilateral triangle and side of triangle is h

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

Biggest Reuleaux Triangle inscribed within a square which is inscribed within an ellipse

Biggest Reuleaux Triangle inscribed within a square which is inscribed within an ellipse

Biggest square which is inscribed within an ellipse

If a square is inscribed in an ellipse,

The equation of the ellipse is x^2/a^2 + y^2/b^2 = 1

If, x = y

then, x^2/a^2 + x^2/b^2 = 1

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

y = √(a^2 + b^2)/ab then Area, A = 4(a^2 + b^2)/a^2b^2

Biggest Reuleaux Triangle within A Square

Area of Reuleaux Triangle is 0.70477 * b2 where b is the distance between the parallel lines supporting the Reuleaux Triangle.

distance between parallel lines supporting the Reuleaux Triangle = Side of the square i.e. a

Area of the Reuleaux Triangle, A = 0.70477 * a2

Let’s take an example,

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

Explanation

the side of the square inscribed within an ellipse is, x = √(a^2 + b^2)/ab.

reuleaux triangle, h = x = √(a^2 + b^2)/ab.

Area of the reuleaux triangle, A = 0.70477*h^2 = 0.70477*((a^2 + b^2)/a^2b^2).

Example

#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;
}

Output

The area is : 0.030589

Updated on: 07-Oct-2019

47 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements