Tuesday, January 23, 2018

Trigonometry...

Trigonometry...  Lots of trigonometry!  The past week or so I've been heads-down on making my Sisyphus table software work better, and to add some more drawing primitives to it.  I keep running into issues that can best be solved with trigonometry: laws of sines, laws of cosines, Heron's formula, etc.  At the same time, I keep running into interesting corner cases involving trigonometry, which often requires me to solve the same problem either two or four time, to handle all the possible variations of the problem as it is rotated through 360°.  I haven't done this much trigonometry since high school!

Yesterday I got to know Heron's formula (to find the area of a triangle) far better than I've ever known it before.  I can now tell you with great precision all the possible pitfalls of using Heron's formula in a computational scenario.  I've also managed to use numbers large enough and small enough to challenge the ability of double floating point precision to represent them – and I can tell you about the limitations of Java's built-in trigonometric functions when the arguments are such numbers.  Fun!