首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何计算两个角度度量的差值?

如何计算两个角度度量的差值?
EN

Stack Overflow用户
提问于 2011-09-27 22:27:24
回答 6查看 45.4K关注 0票数 25

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

例如:

代码语言:javascript
运行
复制
350° to 15° = 25°
250° to 190° = 60°
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-09-27 22:41:01

代码语言:javascript
运行
复制
    /**
     * 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;
    }
票数 58
EN

Stack Overflow用户

发布于 2015-06-17 17:11:58

除了Nickes的答案之外,如果你想要“有符号的差分”

代码语言:javascript
运行
复制
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”是结果/最终差异。

票数 23
EN

Stack Overflow用户

发布于 2011-09-27 22:33:09

取其差值的绝对值,如果大于180,减去360°,取结果的绝对值。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7570808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档