[英]problems with cMath and the sin function
嘿,所以我正在做一些图形数学运算,并将我认为是浮点数的东西( 我很确定我之前操纵浮点数的方式以某种方式弄乱了 ……)插入函数中,并得到了奇怪的负结果。
例如,当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));
尝试通过在所有操作无效之前放置(float)来保持Angle浮动。请帮助! 谢谢!
这是因为C / C ++运行时函数sin()
期望以弧度而不是度为单位的参数。
转换成弧度:
float test= sin(Angle / 180 * M_PI);
等等
罪的论点以弧度而不是度为单位。 您需要将数字乘以pi / 180
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.