cMath和sin函数的问题

时间:2011-06-16 06:45:01

标签: c++ type-conversion cmath sin

嘿所以我正在做一些图形数学并插入我认为是浮动的东西(我很确定我预先操纵浮动的方式是某种方式弄乱某些东西 ......)进入功能并变得奇怪,消极的结果回来了。

例如,当Angle最初等于350.0时执行以下操作时,测试最终为
-.99。的为什么吗

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));

尝试通过在一切都不起作用之前放置(浮动)来保持角度浮动...请帮忙!的谢谢!

2 个答案:

答案 0 :(得分:4)

那是因为C / C ++运行时函数sin()期望参数以弧度表示,而不是度数。

转换为弧度:

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

答案 1 :(得分:1)

sin以弧度为单位,而不是度数。你需要把你的数字乘以pi / 180