# Largest triangle that can be inscribed in an ellipse

Given an ellipse, with major axis length **2a** & **2b**, the task is to find the area of the largest triangle that can be inscribed in it.**Examples:**

Input: a = 4, b = 2 Output: 10.3923 Input: a = 5, b = 3 Output: 10.8253

**Approach:** So we know the ellipse is just the scaled shadow of a circle.Let’s find the scaling factor.

x^2/a^2 + y^2/b^2 = 1is an ellipse. Rewrite this as:(y*(a/b))^2+x^2 = a^2

This is just a vertically scaled down circle of radius **a** (think light falls from the top at an angle), and the vertical factor is **a/b**. The biggest triangle in the ellipse is then a scaled up version of the biggest triangle in the circle. Using a little geometry and taking symmetry into account, we can understand that the biggest such triangle is the equilateral one. It’s sides will be **âˆš3a** and the area will be **(3âˆš3)a^2/4**

Translating this to ellipse terms – we scale the horizontal dimension up by a factor **a/b**, and the area of the biggest triangle in the ellipse is,

A = (3âˆš3)a^2/4b

Below is the implementation of above approach:

## C++

`// C++ Program to find the biggest triangle` `// which can be inscribed within the ellipse` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// Function to find the area` `// of the triangle` `float` `trianglearea(` `float` `a, ` `float` `b)` `{` ` ` `// a and b cannot be negative` ` ` `if` `(a < 0 || b < 0)` ` ` `return` `-1;` ` ` `// area of the triangle` ` ` `float` `area = (3 * ` `sqrt` `(3) * ` `pow` `(a, 2)) / (4 * b);` ` ` `return` `area;` `}` `// Driver code` `int` `main()` `{` ` ` `float` `a = 4, b = 2;` ` ` `cout << trianglearea(a, b) << endl;` ` ` `return` `0;` `}` |

## Java

`//Java Program to find the biggest triangle` `//which can be inscribed within the ellipse` `public` `class` `GFG {` ` ` `//Function to find the area` ` ` `//of the triangle` ` ` `static` `float` `trianglearea(` `float` `a, ` `float` `b)` ` ` `{` ` ` `// a and b cannot be negative` ` ` `if` `(a < ` `0` `|| b < ` `0` `)` ` ` `return` `-` `1` `;` ` ` `// area of the triangle` ` ` `float` `area = (` `float` `)(` `3` `* Math.sqrt(` `3` `) * Math.pow(a, ` `2` `)) / (` `4` `* b);` ` ` `return` `area;` ` ` `}` ` ` `//Driver code` ` ` `public` `static` `void` `main(String[] args) {` ` ` ` ` `float` `a = ` `4` `, b = ` `2` `;` ` ` `System.out.println(trianglearea(a, b));` ` ` `}` `}` |

## Python3

`# Python 3 Program to find the biggest triangle` `# which can be inscribed within the ellipse` `from` `math ` `import` `*` `# Function to find the area` `# of the triangle` `def` `trianglearea(a, b) :` ` ` `# a and b cannot be negative` ` ` `if` `a < ` `0` `or` `b < ` `0` `:` ` ` `return` `-` `1` ` ` `# area of the triangle` ` ` `area ` `=` `(` `3` `*` `sqrt(` `3` `) ` `*` `pow` `(a, ` `2` `)) ` `/` `(` `4` `*` `b)` ` ` `return` `area` `# Driver Code` `if` `__name__ ` `=` `=` `"__main__"` `:` ` ` `a, b ` `=` `4` `, ` `2` ` ` `print` `(` `round` `(trianglearea(a, b),` `4` `))` `# This code is contributed by ANKITRAI1` |

## C#

`// C# Program to find the biggest` `// triangle which can be inscribed` `// within the ellipse` `using` `System;` `class` `GFG` `{` `// Function to find the area` `// of the triangle` `static` `float` `trianglearea(` `float` `a, ` `float` `b)` `{` `// a and b cannot be negative` `if` `(a < 0 || b < 0)` ` ` `return` `-1;` `// area of the triangle` `float` `area = (` `float` `)(3 * Math.Sqrt(3) *` ` ` `Math.Pow(a, 2)) / (4 * b);` `return` `area;` `}` `// Driver code` `public` `static` `void` `Main()` `{` ` ` `float` `a = 4, b = 2;` ` ` `Console.WriteLine(trianglearea(a, b));` `}` `}` `// This code is contributed` `// by Akanksha Rai(Abby_akku)` |

## PHP

`<?php` `// PHP Program to find the biggest` `// triangle which can be inscribed` `// within the ellipse` `// Function to find the area` `// of the triangle` `function` `trianglearea(` `$a` `, ` `$b` `)` `{` ` ` `// a and b cannot be negative` ` ` `if` `(` `$a` `< 0 || ` `$b` `< 0)` ` ` `return` `-1;` ` ` `// area of the triangle` ` ` `$area` `= (3 * sqrt(3) *` ` ` `pow(` `$a` `, 2)) / (4 * ` `$b` `);` ` ` `return` `$area` `;` `}` `// Driver code` `$a` `= 4;` `$b` `= 2;` `echo` `trianglearea(` `$a` `, ` `$b` `);` `// This code is contributed` `// by Shivi_Aggarwal` `?>` |

## Javascript

`<script>` `// javascript Program to find the biggest triangle` `// which can be inscribed within the ellipse` `// Function to find the area` `// of the triangle` `function` `trianglearea(a , b)` `{` ` ` `// a and b cannot be negative` ` ` `if` `(a < 0 || b < 0)` ` ` `return` `-1;` ` ` `// area of the triangle` ` ` `var` `area = (3 * Math.sqrt(3) * Math.pow(a, 2)) / (4 * b);` ` ` `return` `area;` `}` `// Driver code` `var` `a = 4, b = 2;` `document.write(trianglearea(a, b).toFixed(4));` `// This code contributed by shikhasingrajput` `</script>` |

**Output:**

10.3923