Flash 理解sin(x)的问题

Flash 理解sin(x)的问题,flash,math,trigonometry,Flash,Math,Trigonometry,嘿,伙计们, 我得到了这个密码: red = red + 1; trace("red: " + red); trace("Math.sin(red): " + Math.sin(red)); var newRed:uint = Math.abs(Math.sin(red)) * 255; trace("newRed: " + newRed); 此代码输出以下内容: red: 256 Math.sin(red): -0.9992080341070627 newRed: 254 red: 257

嘿,伙计们, 我得到了这个密码:

red = red + 1;
trace("red: " + red);
trace("Math.sin(red): " + Math.sin(red));
var newRed:uint = Math.abs(Math.sin(red)) * 255;
trace("newRed: " + newRed);
此代码输出以下内容:

red: 256
Math.sin(red): -0.9992080341070627
newRed: 254
red: 257
Math.sin(red): -0.5733571748155426
newRed: 146
red: 258
Math.sin(red): 0.37963562682930313
newRed: 96
red: 259
Math.sin(red): 0.9835931839466808
newRed: 250
等等

当我将sin257插入计算器时,我得到-0.974370064785235,但Flash得到-0.5733571748155426

编辑:-

然而,当我插入sin256时,我从每个端口获得相同的数字。这就是让我困惑的地方

我有点不明白为什么会这样。请帮忙。
Alex

确保提供正确的输入参数格式。有些人可能希望该参数以弧度表示角度,有些则以度表示


根据sin函数,期望参数为弧度

Flash使用弧度单位,计算器使用度单位。

请参见用户492238的答案。这很可能是问题所在:。如有疑问,请使用RTFM:还请注意,该页面顶部提供了弧度和度数之间转换的公式,但它应该返回与计算器相同的值。在这种情况下,我不使用sin进行角度测量,而是用于插值。如果提供相同的输入值,它会在舍入误差内返回相同的值。弧度和度只是相同角度的两种不同表示。请参阅上面的维基百科文章。当我将256放入计算器时,得到的结果与Flash相同。但当我放257的时候,它就不同了。你能解释一下吗?256的结果是什么?您使用的是哪个计算器?Windows calc:sin256->rad:-0999208034107066990675905638387度:-097029572627599647230637787403399