首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

集思广益-大家伙儿说说有什么好方法计算角度的偏差

2013-08-13 
集思广益--大家说说有什么好方法计算角度的偏差角度范围是-180至180。任意给定两个角度,比如26和28,偏差是2

集思广益--大家说说有什么好方法计算角度的偏差
角度范围是-180至180。任意给定两个角度,比如26和28,偏差是2,比如-178和178,偏差是4,3和-3,偏差是6。有什么好方法,可以很快计算出偏差的,效率更好的。分不多,期待大神出现,能给小弟一个C#函数直接用,那就爽歪歪了集思广益-大家伙儿说说有什么好方法计算角度的偏差
[解决办法]
参考一下,完善起来。

static void Main(string[] args)
        {
            int result = Compute(3, -3);
            Console.WriteLine(result);
        }

        public static int Compute(int a, int b)
        {
            int result = 0;
            int c = a - b;
            if (Math.Abs(c) > 180 && Math.Abs(c) < 360)
            {
                result = 360 - Math.Abs(c);
            }
            if (Math.Abs(c) < 180)
            {
                result = Math.Abs(c);
            }
            return result;
        }

[解决办法]

Offset Angel:

   Math.Min(360 - Math.Abs(a - b) % 360, Math.Abs(a - b) % 360)

[解决办法]
楼主这样简单了吗


写成函数形式为:


static float OffsetAngle(float a, float b)
{
    float c = Math.Abs(a - b) % 360;
    return Math.Min(360 - c, c);
}

[解决办法]
比较大小,拿大的减去小的。如果结果大于180。用360减去。
 public static int Compute(int a, int b){int result=0;if(a>b){result=a-b;}else{result=b-a;}
if(result>180){result=360-result;} return result.
 }

[解决办法]
这还要集思广益啊。
a = (360 + a) % 360;
b = (360 + b) % 360;
result = (a - b + 180) % 180;

热点排行