当前位置: 首页 > 面试题库 >

轻松将角度保持在-179至180度之间的方法

越运锋
2023-03-14
问题内容

有没有一种简单的方法可以将角度(以度为单位)转换为-179至180?我确定我可以使用mod(%)和一些if语句,但是它变得难看:

//Make angle between 0 and 360
angle%=360;

//Make angle between -179 and 180
if (angle>180) angle-=360;

似乎应该有一个简单的数学运算可以同时执行两个语句。我可能现在只需要为转换创建一个静态方法。


问题答案:

我知道聚会晚了一点,但是…

这些答案大多数都不是好事,因为它们试图变得聪明而简洁,然后又不顾及边缘情况。

它有点冗长,但是如果您想使其工作,则只需输入使其工作的逻辑即可。不要试图变得聪明。

int normalizeAngle(int angle)
{
    int newAngle =角度;
    而(newAngle <= -180)newAngle + = 360;
    而(newAngle> 180)newAngle-= 360;
    返回newAngle;
}

这可以正常工作并且相当干净和简单,而不必花哨。请注意,只能运行零或while循环之一。



 类似资料:
  • 在具有spring boot和angular的客户端服务器应用程序中。我找到的大多数资源都解释了如何从spring boot公开RESTendpoint,并使用http客户端从angular使用它。 大多数时候,JSON中的通信都是预先设定的,在angular和Spring Boot端维护DTO(DataTransferToObject)。 我想知道有全栈经验的人是否知道一些替代方案,避免在前端和

  • 问题内容: 我需要为自己的Point类计算两个点之间的角度,以度为单位,Point a为中心点。 方法: 测试1://返回45 测试2://返回-90,预期值:270 如何将返回的结果转换为0到359之间的数字? 问题答案: 您可以添加以下内容: 顺便说一句,为什么您不想在这里使用双精度?

  • 问题内容: 我正在学习角度。我不明白onLoad和ng-init之间的变量初始化有什么区别。它在哪个范围内创建此变量。 也请给我一些关于隔离范围的想法。 问题答案: 是,可以放置内的指令的,的,不管,而是一个属性特定于指令其功能如同一个。要了解我的意思,请尝试以下操作: 您会看到只有第二个出现。 隔离范围是一个原型,它不从其父范围继承。用外行的术语来说,如果您有一个小部件不需要任意读写父作用域,则

  • 我正在编写一个程序来计算小时之间的角度 我写了我的代码,但无论我对计算做了多少更改,我仍然无法得到本文想要的答案。。 我用了替身 现在当我找到这些角度之间的差异时,我会得到不同的结果... 时间11:54:29这是我的结果 但预期的结果是: 他是如何得到这些结果的??我也试过用普通的方法,但仍然不能得到相同的结果。许多公式,但仍然无法得到相同的答案。。。

  • 我想在两点之间画一条弧线。我知道两个点的位置和弧度的角度。我成功地写了一个小程序来计算圆心,有效地画出了圆弧。但是当我画一个圆来验证时,当我用小的弧度值时,圆线不交叉给出的两点。 但两点到圆心的距离等于计算半径。我哪里错了?

  • 我有两个NetCDF文件,每个文件都有不同的年份,我想将它们连接起来。它们似乎有相同的结构,时间是无限的维度,除了一个文件的经度是0:360,另一个文件的经度是-180:180。 这个问题解决了如何使用 R 中的栅格包来处理这个问题,但我想使用 nco。 我已经找到了转换的说明(提供如下)-180:180- 关于我的NetCDF文件的详细信息: 这是我在手册中找到的将-180:180转换为0:36