[Tutor] Angles
Terry Carroll
carroll at tjc.com
Wed Nov 29 02:53:45 CET 2006
On Tue, 28 Nov 2006, Carlos wrote:
> I was never very good at trigonometry, but looks like my translation of
> the equation is ok and the problem is some kind of python behavior,
> because whenever the results exceed 100° (deg) Python returns the
> complementary angle, it is possible to avoid this? Or I'm overlooking
> somethig?
Carlos, I'm not so good at trigonometry myself, but I suspect that the
trouble is that for some trig functions, both an angle and that angle's
complement map to the same value. For example:
>>> angle1 = radians(45) # 45 degrees
>>> angle2 = pi-angle1 # 135 degrees
>>> print degrees(angle1), degrees(angle2)
45.0 135.0
>>> sin(angle1), sin(angle2)
(0.70710678118654746, 0.70710678118654757)
>>> angle1 = radians(30)
>>> angle2 = pi-angle1
>>> print degrees(angle1), degrees(angle2)
30.0 150.0
>>> sin(angle1), sin(angle2)
(0.49999999999999994, 0.49999999999999994)
So basically, once you take a sine in your early steps, you're getting the
same sine result regardless of whether it's in the first quadrant (0-90
degrees) or second quadrant (90-180 degrees). When you subsequently use
that sine and try to eventually get an angle out of it, it's going to give
you a first-quadrant result.
I think you'll need to track the range of your input angle and adjust your
output angle accordingly. The algorithm you got may only be valid for
0-90 degrees.
More information about the Tutor
mailing list