1

我试图将 X 距离(图:45)的度数与给定度数(图:15)相距。我陷入了 360/0 环绕。给定的度数都归一化为 0-360。有人可以告诉我如何做到这一点吗?我附上了一张图表,说明我缺乏能力。

我在迈克尔杰克逊的坟墓上发誓,我在问之前搜索了谷歌和 StackOverflow 以获得答案。我意识到这可能是重复的,但不能适当地标记或命名已回答的。

替代文字

4

3 回答 3

2

15+45=60,所以你有右边,但是 15-45=-30,所以你必须加上 360,得到 330。

基本上,每次超出 [0,360) 时,您都会添加或减去 360,我使用 ) 作为开放范围。

如果您想编写测试以将标记着色为蓝色,例如 h 是标题,o 是偏移量,x 是我们正在测试的标记,那么您正在寻找类似 c-ish 伪代码中的内容:

t=h-x
if (t>360) {t-=360}
if (t<0) {t+=360}
if (t<o) {mark blue}
于 2010-01-14T11:37:41.717 回答
1

我不是 100% 确定你想要实现什么。我假设您想要的是:“对于 X 度,找到最多离它 Y 度的所有度数,在每个标记之间给出 Z 度的步长。”

在这种情况下,只需编写一个从 XY 到 X+Y 的 for 循环,以 Z 为增量。如果当前度数 < 0,则只需添加 360。

于 2010-01-14T11:32:09.163 回答
1

为什么不简单地使用模运算?

deg = deg % 360

于 2010-01-14T12:02:46.757 回答