1

嘿,所以我正在做一些图形数学并将我认为是浮点数的内容(我很确定我事先操纵浮点数的方式以某种方式搞砸了一些东西......)到函数中并得到奇怪的负面结果.

例如,当 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));

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

4

2 回答 2

4

这是因为 C/C++ 运行时函数sin()需要以弧度为单位的参数,而不是度数。

转换为弧度:

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

等等

于 2011-06-16T06:46:48.793 回答
1

sin 用弧度而不是度数来表示它的参数。你需要把你的号码乘以 pi/180

于 2011-06-16T06:48:41.617 回答