Sides of right angled triangle from given area and hypotenuse in Python
In this article, we will learn how to find all the sides of a right-angled triangle from a given area and hypotenuse in Python.
Examples
Input: hypotenuse = 10, area = 24 Output: Base = 6, Height = 8 Input: hypotenuse = 5, area = 10 Output: No triangle possible
Some of the property of a right-angled triangle are
Let’s consider a right-angle triangle with height a, base b the hypotenuse c will be
c² = a² + b²
A right-angle triangle will have a maximum area when both the base and height to each other.
All the sides of a right-angled triangle from a given area and hypotenuse in Python
1. Firstly create a function area() that takes base, the hypotenuse as arguments.
- Calculate the height using the base and hypotenuse height = math.sqrt(hypotenuse*hypotenuse – base*base).
- return the area of the triangle 0.5 * height * base.
2. Now create a function idesOfRightAngleTriangle() that calculates the sides of the triangle
- Firstly, calculate the maximum possible side when the area is maximum. and calculate the area using the area() function.
- Compare given the area a with the maximum area, if a>maxArea then print “No possible”.
- Using binary search calculate the base and the height of the triagle.
import math def area(base, hypotenuse): height = math.sqrt(hypotenuse*hypotenuse - base*base) return 0.5 * base * height def sidesOfRightAngleTriangle(h, a): hsqrt = h*h maxAreaSide = math.sqrt(hsqrt/2.0) maxArea = area(maxAreaSide, h) if (a>maxArea): print("No possible") return low = 0.0 high = maxAreaSide while (abs(high-low)>1e-6): base = (low+high)/2.0 if (area(base, h) >= a): high = base else: low = base height = math.ceil(math.sqrt(hsqrt - base*base)) base = math.floor(base) print("Base: ", base) print("Height: ", height) h = int(input("Enter the hypotenuse: ")) a = int(input("Enter the area: ")) sidesOfRightAngleTriangle(h, a)
Output
Enter the hypotenuse: 5 Enter the area: 6 Base: 3 Height: 4 Enter the hypotenuse: 5 Enter the area: 7 No possible
Also, read
Leave a Reply