Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   atan Problem - Need Help (http://www.chiefdelphi.com/forums/showthread.php?t=34896)

the_undefined 18-02-2005 11:16

atan Problem - Need Help
 
Hi Guys,

I have a little problem getting the atan function of Team 296's Math Library to work for me. What I need is calculating the Degree my Joystick is looking it by using atan(x,y).

I already know how to use the sin/cos function and how to work with the binary radians (-8,388,608 to 8,388,607) that the functions operate in.

But for some reason the results I get back from atan seem to be different from the one sin/cos give me or in different words: Say behave nonlinear in cases they should:

Here is what I tried (after I had problems with weird results):
Code:

short long brad; int int_brad;

// should give me 8388608/4 Brad = 45 Degree back, according to the way sin/cos work
brad = atan(1,1);

// Transform short long to int to be able to print the result with printf();
// Drop the last 8 Bit (Should be 32768/4=8192 after that)
brad>>=8;

// Put value in an Int
int_brad = (int)brad;

// Print the Value to the Screen
printf("int_brad = %d\n", (int)int_brad);

// ====Output===
int_brad = 8511

Converting this into Degree I got 46 Degree but I didn't like that because sin/cos worked way more accurate for me than this. So I tried different Values and that showed that there must be a problem:


Code:

atan(1,1) = 8511        (should be 32768/4=8192        = 45 Degree)
atan(1,-1) = 24256    (should be -32768/4=-8192      = -45 Degree)
atan(1,0) = 1799        (should be 0/32768=0)            = 0 Degree)
atan(1,2) = 1799        (should be 11548)                  = 63.43 Degree)
atan(1,-2) = 1799      (should be-11548)                = -63.43 Degree)
atan(2,1) = -1800      (should be 4736)                  = 26.57 Degree)
atan(2,-1) = -30969    (should be -4736                  = -26.57 Degree)

Anybody out there that has an Idea what I could do wrong or somebody that already has atan working?

Thanks for your Help,

Felix


All times are GMT -5. The time now is 04:38.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi