嘿所以我正在做一些图形数学并插入我认为是浮动的东西(我很确定我预先操纵浮动的方式是某种方式弄乱某些东西 ......)进入功能并变得奇怪,消极的结果回来了。
例如,当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));
尝试通过在一切都不起作用之前放置(浮动)来保持角度浮动...请帮忙!的谢谢!
答案 0 :(得分:4)
那是因为C / C ++运行时函数sin()
期望参数以弧度表示,而不是度数。
转换为弧度:
float test= sin(Angle / 180 * M_PI);
等
答案 1 :(得分:1)
sin以弧度为单位,而不是度数。你需要把你的数字乘以pi / 180