gpt4 book ai didi

angle - 将角度的风向转换为文本词

转载 作者:行者123 更新时间:2023-12-03 08:08:02 25 4
gpt4 key购买 nike

我有来自风向标的风向数据,数据以 0 到 359 度表示。

我想将其转换为具有 16 个不同方向的文本格式(罗盘玫瑰)。

基本上我想知道是否有一种快速灵活的方法可以将角度读数缩放到 16 字符串数组以打印出正确的风向,而无需使用一堆 if 语句并检查角度范围

风向可查here .

谢谢!

最佳答案

编辑:

由于每 22.5 度有一个角度变化,因此方向应在 11.25 度后交换。

所以:

349-360//0-11 = N
12-33 = NNE
34-56 = NE

使用 327-348(整个 NNW 频谱)中的值未能为 eudoxos 的答案产生结果。
想了想也找不到他逻辑上的漏洞,所以我自己重写了..
def degToCompass(num):
val=int((num/22.5)+.5)
arr=["N","NNE","NE","ENE","E","ESE", "SE", "SSE","S","SSW","SW","WSW","W","WNW","NW","NNW"]
print arr[(val % 16)]

>>> degToCompass(0)
N
>>> degToCompass(180)
S
>>> degToCompass(720)
N
>>> degToCompass(11)
N
>>> 12
12
>>> degToCompass(12)
NNE
>>> degToCompass(33)
NNE
>>> degToCompass(34)
NE

步骤:
  • 将角度除以 22.5,因为 360 度/16 个方向 = 22.5 度/方向变化。
  • 添加 .5 以便在截断值时可以打破更改阈值之间的“联系”。
  • 使用整数除法截断值(因此没有四舍五入)。
  • 直接索引到数组并打印值(mod 16)。
  • 关于angle - 将角度的风向转换为文本词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7490660/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com