C# 为什么Math.Cos返回了错误的值?

C# 为什么Math.Cos返回了错误的值?,c#,math,xna,C#,Math,Xna,在我的代码中: Vector2 colCircle = new Vector2(); colCircle = new Vector2((R * Math.Sin(D)), -(R * Math.Cos(D))); 而: R = 22.627 D = 89.214 在我的计算器上检查时,X值是正确的,但Y值应该是-0.310,但在程序中是-7.134 你知道为什么吗?三角函数期望的是弧度,而不是度。将现有的替换为 colCircle = new Vector2((R * Math.Sin(D

在我的代码中:

Vector2 colCircle = new Vector2();

colCircle = new Vector2((R * Math.Sin(D)), -(R * Math.Cos(D)));
而:

R = 22.627
D = 89.214
在我的计算器上检查时,X值是正确的,但Y值应该是-0.310,但在程序中是-7.134


你知道为什么吗?

三角函数期望的是弧度,而不是度。

将现有的替换为

colCircle = new Vector2((R * Math.Sin(D*Math.PI/180.0)), -(R * Math.Cos(D*Math.PI/180.0))); 

你应该没事的。Cos/Sin期望的是弧度而不是度。

的确如此。啊。。。我真是傻透了。是的-2π(rad)=360(度),那么为什么Math.Cos(90*Math.Pi/180)返回一些*奇怪的值而不是0?我不能复制你的值,但是知道.net trig函数(就像大多数数学库实现一样)可能会有所帮助除了以弧度表示的角度参数。我认为程序X值与实际弧度值的接近程度很有趣。我认为程序X值与实际弧度值的接近程度很有趣。正弦函数是最大的,
+1
,正好在角度
28.5*π
弧度处。这是89.535弧度。实际上,MathHelper.ToRadians实现起来更快。