gpt4 book ai didi

python - 如何计算时针和分针之间的角度?

转载 作者:太空狗 更新时间:2023-10-29 19:34:11 37 4
gpt4 key购买 nike

我正在尝试解决这个问题,但我仍在努力理解解决这个问题的逻辑。

hour degree = 360 / 12 = 30
minutes degree = 360 / 12 / 60 = 0.5

因此,据此,我认为我可以在 python 中制定以下函数:

def clockangles(hour, min):
return (hour * 30) + (min * 0.5)

这个小时,它工作正常,因为它似乎有一个 1=1 映射。但目前至少有一个问题。当时间为 0 分钟时,分针指向 12。

例如:

晚上 7 点:指针指向晚上 7 点,分钟指向 12 点

如何正确计算分钟数?请帮助我理解公式。

编辑: 例如,如果我在晚上 7 点调用上面的函数,例如 clockangles(7,0),我得到值 210。但是,根据 this link 7:00 的角度是 150

最佳答案

好的。您正在尝试找出两只手之间的角度。然后这个:

minutes degree = 360 / 12 / 60 = 0.5

只是指针每分钟移动的度数。想一想 - 分针每小时走完整个 360 度。因此,一整圈只有 60 分钟。 360/60 = 分针每分钟 6 度。

因此,您需要找出时针和分针之间的差异。因此函数现在看起来像:

def clockangles(hour, minute):
return (hour * 30 + minute * 0.5) - (minute * 6)

现在,这是有效的,所以我们可以到此为止。但是我应该解释一下,这可以给出大于 180 度和负角的答案。如果您不想要这些东西(并且从您的评论看来您不想要),请更正它们。

def clockangles(hour, minute):
return abs((hour * 30 + minute * 0.5) - (minute * 6))

现在,没有负角。

def clockangles(hour, minute):
ans = abs((hour * 30 + minute * 0.5) - (minute * 6))
return min(360-ans,ans)

现在,顺时针和逆时针测量形成的两个角中较短的一个。

关于python - 如何计算时针和分针之间的角度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20601427/

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