手上的Python运动模拟时钟

时间:2015-03-11 12:03:14

标签: python-2.7

我正在尝试画一个钟面,随着时间的变化,秒针会移动。 我使用以下内容来计算我圈子上的点数:

def points_on_circle():
global time, radius, centre, x, y

theta = time% math.pi * 2
c = math.cos(theta)
s = math.sin(theta)
x= centre[0] + radius * c
y =centre[1] + radius * s
return x,y

我的计时器'每十秒钟'滴答',我的圆圈半径为50,中心位于(150,150),这也是我手的原点,手的另一端是(x,y)计算的以上。我如何计算,我假设通过将时间乘以某个常数,x,y应该为这个圆圈改变多快(但对于任何圆圈)。 我正在使用Coursera的CodeSkulptor尝试这样做(原来的作业创建了一个我完成的数字计时器。这不是作业的一部分(但是??)

1 个答案:

答案 0 :(得分:2)

手每60秒旋转2 Pi弧度。假设您正在与实时同步,time.time()将以秒为单位返回当前时间(以及我建议您忽略的毫秒数)。如果你花时间并且先做numseconds = int(time.time()) % 60,你现在需要翻译它,这很简单,如numseconds * 2 * pi / 60.(例如:numseconds = 0,theta = 0,numseconds = 15,theta = pi / 2(90度)。

你也需要玩你的方程式,因为通常theta = 0意味着线是水平指向右(这将是numseconds = 15)而theta = Pi意味着线是垂直向上(这将是numseconds = 0 )