我正在尝试使用math.sin和math.cos在我的程序中做一个移动的边缘线 . 我得到所有的数学,它似乎正确加起来(我使用点击鼠标位置和移动鼠标变量来确定绘图区域 . 然后我使用宽度值给它边缘偏移 .
我使用math.cos来查找偏移X和Y位置中的点的距离 . 在这样做时,cos(Angle)的值似乎绝对疯狂,从1到-1 . 这是一个例子 .
角度= 29.153788462442
按窗口计算器计算= 0.8733152733324487151754721490934
按照Math.Cos(角度)的Cos = -0.637571130025255
我尝试将Angle转换为float和int,以防小数位导致问题,无济于事 .
这是我用来提出这些答案的代码 .
lblInOpts.Text = Math.Cos(Angle).ToString() + " " + Angle.ToString();
该文档以度为单位,从弧度切换,并使用与MSDN似乎建议的相同方式 .
4 回答
您需要将度数转换为弧度:
您以度为单位传递角度,
Math.Cos
期望以弧度为单位的角度Windows计算器的结果是被解释为度数的角度的余弦值 .
C#代码的结果是角度的余弦,解释为弧度,相当于
1670.389...
度 .要将代码转换为弧度,请使用
-0.637571130025255是29.153788462442弧度(1670.38903571度)的余弦值 . 检查Math.Cos()的文档 - 是否需要以弧度或度数为参数?