如何计算两个角度测量值的差异? [重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何计算两个角度测量值的差异? [重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

如何计算Java中两个角度测量值(以度为单位)的差值,结果是在[0°,180°]范围内?

例如:

350° to 15° = 25°
250° to 190° = 60°
答案
    /**
     * Shortest distance (angular) between two angles.
     * It will be in range [0, 180].
     */
    public static int distance(int alpha, int beta) {
        int phi = Math.abs(beta - alpha) % 360;       // This is either the distance or 360 - distance
        int distance = phi > 180 ? 360 - phi : phi;
        return distance;
    }
另一答案

除了尼克斯回答,如果你想要“签名差异”

int d = Math.abs(a - b) % 360; 
int r = d > 180 ? 360 - d : d;

//calculate sign 
int sign = (a - b >= 0 && a - b <= 180) || (a - b <=-180 && a- b>= -360) ? 1 : -1; 
r *= sign;

编辑:

其中'a'和'b'是两个角度来找到差异。

'd'是不同的。 'r'是结果/最终差异。

另一答案

只需取其差值的绝对值,然后,如果大于180,则减去360°并取结果的绝对值。

另一答案

做就是了

(15 - 350) % 360

如果方向无关紧要(你想要产生最小值的方向),则进行反向减法(mod 360)并计算两者的最小值(例如用Math.min)。

另一答案

以下内容如何:

dist = (a - b + 360) % 360;
if (dist > 180) dist = 360 - dist;
另一答案

diff = MAX(angle1,angle2) - MIN(angle1,angle2); if(diff> 180)diff = 360 - diff;

以上是关于如何计算两个角度测量值的差异? [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何测量数据框中特征之间的差异?

如何计算两个日期时间的月份差异? [重复]

如何计算Python Pandas中两列之间的日期差异[重复]

有效地计算两个向量之间的差异

两个轴承之间的差异(角度)

计算同一列中两个值的差异