How do you calculate the height of a triangle given only the hypotenuse and the ratio of the other two sides?

math

Solution

Having diagonal and ratio is enough :-).

Let d be the diagonal, r the ratio: r=w/h.

Then d²=w²+h².

It follows r²h²+h²=d². That gives you

h²= d² /( r²+1) which you can solve :-).

Problem

There are two sorts of TV: Traditional ones that have an aspect ratio of 4:3 and wide screen ones that are 16:9. I am trying to write a function that given the diagonal of a 16:9 TV gives the diagonal of a 4:3 TV with the equivalent height. I know that you can use Pythagoras' theorem to work this out if I know two of the sides, but I only know the diagonal and the ratio. I have written a function that works by guessing, but I was wondering if there is a better way. My attempt so far: ``` // C# public static void Main() { /* * h = height * w = width * d = diagonal */ const double maxGuess = 40.0; const double accuracy = 0.0001; const double target = 21.5; double ratio4by3 = 4.0 / 3.0; double ratio16by9 = 16.0 / 9.0; for (double h = 1; h < maxGuess; h += accuracy) { double w = h * ratio16by9; double d = Math.Sqrt(Math.Pow(h, 2.0) + Math.Pow(w, 2.0)); if (d >= target) { double h1 = h; double w1 = h1 * ratio4by3; double d1 = Math.Sqrt(Math.Pow(h1, 2.0) + Math.Pow(w1, 2.0)); Console.WriteLine(" 4:3 Width: {0:0.00} Height: {1:00} Diag: {2:0.00}", w, h, d); Console.WriteLine("16:9 Width: {0:0.00} Height: {1:00} Diag: {2:0.00}", w1, h1, d1); return; } } } ```

Original source