Area of circle inscribed in a Isosceles Trapezoid

Given two bases of the isoceles trapezoid ABCD as a and b, the task is to find the area of circle inscribed in this trapezoid

Examples:

Input: a = 10, b = 30 
Output: Area = 235.57

Input: a = 20, b = 36 
Output: Area = 565.38

Derivation: Given a circle inscribed in trapezium ABCD (sides AB = n and CD = m), we need to find out the height of the trapezium i.e., (AL), which is half of the radius of the circle to find the area of the circle.



For finding the height of circle we do following operation.

  1. The circle will always touch the sides of trapezium at their midpoints, Say the midpoints of AB, BD, CD, AC are G, F, H, E and join them with the centre of the circle.
  2. Now from Symmetry, we can see that
    AG = AE = n/2, 
    EC = CG = m/2, 
    HD = DF = n/2,
    GB = FB = m/2
    
  3. Now in Triangle ACL apply the Pythagoras theorem.
    Hypotenuse AC = m/2 + n/2
    Base CL = CH - AG = m/2 - n/2
    
    we get 
    Perpendicular AL = Square_root(m * n)
    
  4. Therfore the height of the Trapezium = AL = Square_Root(Product of given sides)
  5. Now the radius of the circle is simple half of the height and hence the area can be calculated easily.

Appriach:

  1. Find the height of the trapezoid as (square_root( m * n )).
  2. Find the radius of the incircle
    R = height / 2 
      = square_root(m * n) / 2
    
  3. Now find the area of the circle
    = Pi * R2 
    = ( 3.141 * m * n ) / 4
    

Below is the implementation of the above approach:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// CPP implementation to find
// the rea of the circle
// inscribed in a trapezoid
// having non- parllel sides m, n
#include<bits/stdc++.h>
using namespace std;
  
// Function to find area of circle
// inscribed in a trapezoid
// having non- parllel sides m, n
double area_of_circle(int m, int n)
{
    // radius of circle by the
    // formula i.e. root( m * n) / 2
    // area of circle = (3.141 ) * ( R ** 2 )
  
    int square_of_radius = ( m * n ) / 4;
    double area = ( 3.141 * square_of_radius );
    return area;
}
  
// Driver Code
int main(){
    int n = 10;
    int m = 30;
    cout << (area_of_circle(m, n));
}
  
// This code is contributed by mohit kumar 29

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java Program to find 
// the rea of the circle 
// inscribed in a trapezoid 
// having non- parllel sides m, n 
class GFG 
      
    // Function to find area of circle 
    // inscribed in a trapezoid 
    // having non- parllel sides m, n 
    static double area_of_circle(int m, int n) 
    
        // radius of circle by the 
        // formula i.e. root( m * n) / 2 
        // area of circle = (3.141 ) * ( R ** 2 ) 
      
        int square_of_radius = ( m * n ) / 4
        double area = ( 3.141 * square_of_radius ); 
        return area; 
    
      
    // Driver code 
    public static void main (String[] args) 
    
        int n = 10
        int m = 30
        System.out.println(area_of_circle(m, n)); 
    
  
// This code is contributed by Yash_R

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python 3 implementation to find 
# the rea of the circle 
# inscribed in a trapezoid
# having non- parllel sides  m, n
  
  
# Function to find area of circle 
# inscribed in a trapezoid
# having non- parllel sides  m, n
def area_of_circle(m, n):
    # radius of circle by the
    # formula i.e. root( m * n) / 2
    # area of circle = (3.141 ) * ( R ** 2 )
      
    square_of_radius = ( m * n ) / 4
    area = ( 3.141 * square_of_radius )
    return area
  
# Driver Code 
if __name__=='__main__'
    n = 10
    m = 30
    print(area_of_circle(m, n))

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# Program to find 
// the rea of the circle 
// inscribed in a trapezoid 
// having non- parllel sides m, n 
using System; 
  
class GFG 
      
// Function to find area of circle 
// inscribed in a trapezoid 
// having non- parllel sides m, n 
static double area_of_circle(int m, int n) 
    // radius of circle by the 
    // formula i.e. root( m * n) / 2 
    // area of circle = (3.141 ) * ( R ** 2 ) 
  
    int square_of_radius = ( m * n ) / 4; 
    double area = ( 3.141 * square_of_radius ); 
    return area; 
  
// Driver code 
public static void Main () 
    int n = 10; 
    int m = 30;
    Console.WriteLine(area_of_circle(m, n)); 
  
// This code is contributed by Sanjit_Prasad

chevron_right


Output:

235.575

Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.