Relógio analógico com graphics

Eu preciso fazer um relógio analógico em python usando a biblioteca graphics, porém não sei como fazer o movimento dos ponteiros.
Acredito que eu tenha que usar elementos da biblioteca math, como sin e cos, porém não sei como.
Alguém poderia me ajudar?

até agora só fiz a parte que aparece o relógio mesmo, com os ponteiros parados.

from graphics import *
from math import *
from time import *


def clock():
    img = Image(Point(250/2, 250/2), 'clock.png')
    img.draw(win)

    pt1 = Point(250/2, 250/2)
    pt2 = Point(250/2, 70)
    hour = Line(pt1, pt2)
    hour.setOutline(color_rgb(0, 0, 0))
    hour.setWidth(3)
    hour.draw(win)

    pt3 = Point(250 / 2, 250 / 2)
    pt4 = Point(250 / 2, 60)
    minute = Line(pt3, pt4)
    minute.setOutline(color_rgb(0, 0, 0))
    minute.setWidth(3)
    minute.draw(win)

    pt5 = Point(250 / 2, 250 / 2)
    pt6 = Point(250 / 2, 50)
    sec = Line(pt5, pt6)
    sec.setOutline(color_rgb(0, 0, 0))
    sec.setWidth(2)
    sec.draw(win)


win = GraphWin('CLOCK', 250, 250)

clock()

win.getMouse()

http://code.activestate.com/recipes/578875-analog-clock/

1 curtida

E aí @Fran.Silva, tudo bem?!

Você pode calcular um determinado número de pontos da circunferência do relógio e adicionar os mesmos em uma lista, depois é só percorrer a lista com um for ou um while, você também pode determinar um tempo para cada nova interação, sendo que, em cada interação você cria um novo ponto e apaga o ponto anterior a ele. Como tudo acontece muito rápido, você tem a impressão que os ponteiros estão se movendo.

Você pode ler mais sobre isso no link a frente: How to find points on a circumference

Abraços.

1 curtida

Obrigada!