Math.sin - 清除想法

时间:2011-10-18 15:57:52

标签: c# math sin

我正在尝试使用math.sin和math.cos在我的程序中执行移动边线。我得到了所有数学,它似乎正确加起来(我使用鼠标位置从一个点击和一个移动鼠标变量来确定绘图区域。然后我使用宽度值给它边缘偏移。

我使用math.cos来找出偏移X和Y位置点的距离。在这样做时,cos(Angle)的值似乎绝对疯狂,从+1到-1。这是一个例子。

角度= 29.153788462442

按窗口计算器估算= 0.8733152733324487151754721490934

根据Math.Cos(角度)= -0.637571130025255

我尝试将Angle转换为float和int,以防小数位导致问题,无济于事。

这是我用来提出答案的代码。

lblInOpts.Text = Math.Cos(Angle).ToString() + " " + Angle.ToString();

该文件以度为单位,从弧度切换,并以与MSDN似乎建议相同的方式使用。

4 个答案:

答案 0 :(得分:8)

您需要将度数转换为弧度:

Math.Cos(Angle * Math.PI / 180.0)

答案 1 :(得分:2)

您正在以度为单位传递角度,Math.Cos需要以弧度为单位的角度

答案 2 :(得分:2)

Windows计算器的结果是被解释为度数的角度的余弦。

C#代码的结果是角度的余弦,被解释为弧度,相当于1670.389...度。

要将代码转换为弧度,请使用

public static double ToRadians(double x) {
    return x * Math.PI / 180.0;
}

答案 3 :(得分:1)

-0.637571130025255是29.153788462442弧度(1670.38903571度)的余弦值。检查Math.Cos()的文档 - 是否需要以弧度或度数为参数?