开发者

problems with cMath and the sin function

Hey so i'm doing some graphics math and inserting what i believe to be a float (i'm pretty sure the ways i manipulate the float beforehand is messing something up开发者_StackOverflow中文版 somehow...) into the function and getting strange, negative results back.

for instance when doing the following opperations when Angle initially equals 350.0, test ends up being

-.99. Why?

Angle= (float)(Angle-(int)Angle)+(float)((int)Angle%90); 

// calculates x and y based on angle and Hypotenuse
float test= sin(Angle);
float test2= 1/(Speed*Time);
float test3= test/test2;
buffX= sin(Angle)/ (1.f/(Speed*Time));
buffY= sin(Angle-90)/ (1.f/(Speed*Time));

trying to keep Angle a float by putting (float) before everything didn't work... please help! Thanks!


That's because the C/C++ runtime function sin() expects the argument in radians, not degrees.

Convert to radians with:

float test= sin(Angle / 180 * M_PI);

etc.


sin takes its arguments in radians, not degrees. You need to take you number and multiply it pi/180

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜