我正在尝试解决这个问题,但我仍然在努力理解解决这个问题的逻辑。
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(使用前将#替换为@)