Biggest Reuleaux Triangle within a Square which is inscribed within a Right angle Triangle
Given here is a right angle triangle with height l, base b & hypotenuse h, which inscribes a square which in turn inscribes a reuleaux triangle. The task is to find the maximum possible area of this reuleaux triangle.
Examples:
Input: l = 5, b = 12, h = 13 Output: 8.77914 Input: l = 3, b = 4, h = 5 Output: 2.07116
Approach: We know, the side of the square inscribed within a right angled triangle is, a = (l*b)/(l+b), please refer Area of a largest square fit in a right angle triangle.
Also, in the reuleaux triangle, x = a.
So, x = (l*b)/(l+b).
So, Area of the Reuleaux Triangle is, A = 0.70477*x^2 = 0.70477*((l*b)/(l+b))^2.
Below is the implementation of the above approach:
C++
// C++ Program to find the biggest Reuleaux triangle // inscribed within in a square which in turn // is inscribed within a circle #include <bits/stdc++.h> using namespace std; // Function to find the biggest reuleaux triangle float Area( float l, float b, float h) { // the height or base or hypotenuse // cannot be negative if (l < 0 || b < 0 || h < 0) return -1; // height of the reuleaux triangle float x = (l * b) / (l + b); // area of the reuleaux triangle float A = 0.70477 * pow (x, 2); return A; } // Driver code int main() { float l = 5, b = 12, h = 13; cout << Area(l, b, h) << endl; return 0; } |
Java
// Java Program to find the biggest Reuleaux triangle // inscribed within in a square which in turn // is inscribed within a circle import java.util.*; import java.text.DecimalFormat; class GFG { // Function to find the biggest reuleaux triangle static double Area( double l, double b, double h) { // the height or base or hypotenuse // cannot be negative if (l < 0 || b < 0 || h < 0 ) return - 1 ; // height of the reuleaux triangle double x = (l * b) / (l + b); // area of the reuleaux triangle double A = 0.70477 * Math.pow(x, 2 ); return A; } // Driver code public static void main(String args[]) { double l = 5 , b = 12 , h = 13 ; DecimalFormat df = new DecimalFormat( "#,###,##0.00000" ); System.out.println(df.format(Area(l, b, h))); } } // This code is contributed by // Shashank_Sharma |
Python3
# Python3 Program to find the biggest # Reuleaux triangle inscribed within # in a square which in turn is inscribed # within a circle import math as mt # Function to find the biggest # reuleaux triangle def Area(l, b, h): # the height or base or hypotenuse # cannot be negative if (l < 0 or b < 0 or h < 0 ): return - 1 # height of the reuleaux triangle x = (l * b) / (l + b) # area of the reuleaux triangle A = 0.70477 * pow (x, 2 ) return A # Driver code l, b, h = 5 , 12 , 13 print (Area(l, b, h)) # This code is contributed by # Mohit kumar 29 |
C#
// C# Program to find the biggest Reuleaux triangle // inscribed within in a square which in turn // is inscribed within a circle using System; class GFG { // Function to find the biggest reuleaux triangle static double Area( double l, double b, double h) { // the height or base or hypotenuse // cannot be negative if (l < 0 || b < 0 || h < 0) return -1; // height of the reuleaux triangle double x = (l * b) / (l + b); // area of the reuleaux triangle double A = 0.70477 * Math.Pow(x, 2); return A; } // Driver code public static void Main() { double l = 5, b = 12, h = 13; Console.WriteLine((Area(l, b, h))); } } // This code is contributed by // Mukul Singh |
PHP
<?php // PHP Program to find the biggest // Reuleaux triangle inscribed within // in a square which in turn is // inscribed within a circle // Function to find the biggest // reuleaux triangle function Area( $l , $b , $h ) { // the height or base or hypotenuse // cannot be negative if ( $l < 0 or $b < 0 or $h < 0) return -1; // height of the reuleaux triangle $x = ( $l * $b ) / ( $l + $b ); // area of the reuleaux triangle $A = 0.70477 * pow( $x , 2); return $A ; } // Driver code $l = 5; $b = 12; $h = 13; echo Area( $l , $b , $h ); // This code is contributed by // anuj_67 ?> |
Javascript
<script> // Javascript Program to find the biggest Reuleaux triangle // inscribed within in a square which in turn // is inscribed within a circle // Function to find the biggest reuleaux triangle function Area(l,b,h) { // the height or base or hypotenuse // cannot be negative if (l < 0 || b < 0 || h < 0) return -1; // height of the reuleaux triangle let x = (l * b) / (l + b); // area of the reuleaux triangle let A = 0.70477 * Math.pow(x, 2); return A; } // Driver code let l = 5, b = 12, h = 13; document.write( Area(l,b,h).toFixed(5)); // This code contributed by Rajput-Ji </script> |
Output:
8.77914
Time Complexity: O(1)
Auxiliary Space: O(1)
Please Login to comment...