我正在尝试使用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似乎建议相同的方式使用。
答案 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()的文档 - 是否需要以弧度或度数为参数?