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

2024-02-14

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

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 点

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

EDIT:例如,如果我在晚上 7 点调用上面的函数,例如 Clockangles(7,0),我会得到值 210。但是,根据这个链接 http://www.mathsisfun.com/activity/clocks-angles.html7:00 时的角度为 150


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

minutes degree = 360 / 12 / 60 = 0.5

只是度数吗hour手每分钟移动一次。想一想 - 分针每小时运行整整 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)

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何计算时针和分针之间的角度? 的相关文章

随机推荐