User manual
75
Une boucle dessine successivement les
60 points-minutes sur un cercle. Tous les points sont déterminés avec
la fonction
point(). Ils sont à la même distance du point central, qui est toujours éloigné de 10 pixels du
bord de la fenêtre avec
190 pixels en quatre quadrants. Les points ont un rayon de 2 pixels.
for i in range(12):
pygame.draw.circle(CHAMP, NOIR, point(190, i * 5), 4)
Une deuxième boucle dessine 12 cercles plus grands qui marquent les heures sur le cadran. Ils ont un rayon
de
4 pixels, sont simplement dessinés sur le cercle précédent et les recouvrent complétement. Le symbole
des heures se suivent à une distance angulaire de cinq unités-minutes que l'on peut obtenir en multipliant
par
5 les données angulaires, qui sont données dans la fonction.
mainloop = True; s1 = 0 Avant que la boucle principale du programme ne commence, deux variables
auxiliaires sont encore définies. Elles sont nécessaires dans les processus suivants.
mainloop indique
comme dans le dernier exemple de programme si la boucle doit se répéter ou si l'utilisateur souhaite quitter
le programme.
s1 enregistre la dernière seconde affichée.
while mainloop:
temps = time.localtime()
La boucle principale du programme commence maintenant. Elle écrit à chaque cycle, indépendamment de
sa durée, l'heure actuelle dans l'objet
temps. Pour ce faire, la fonction time.localtime() de la
bibliothèque
time est utilisée. Le résultat est une structure de données qui est composée de différentes
valeurs individuelles.
s = temps.tm_sec; m = temps.tm_min; h = temps.tm_hour
Les trois valeurs importantes pour les aiguilles, secondes, minutes et heures, sont écrites à partir de la
structure dans trois variables
s, m et h.
if h > 12:
h = h – 12
L’horloge analogique ne montre que douze heures. La fonction time.localtime() fournit toutes les
données de temps en format 24 heures. Pour afficher l'heure de l'après-midi, il suffit de soustraire
12 heures.
Affichage de l'heure avec une horloge analogique
Selon le mécanisme utilisé, il existe deux affichages différents pour les horloges analogiques. Dans une
vraie montre analogique, l'aiguille des minutes effectue un mouvement circulaire uniforme. Dans une
montre à commande numérique, comme par exemple les horloges de gare, une minute complète passe à
la minute suivante. Cette dernière méthode a l'avantage de pouvoir lire l'heure en un clin d'œil, à la
minute près. Les fractions de minutes ne sont pas importantes normalement pour la vie de tous les jours.
Nous utilisons également cette méthode pour notre programme d'horloge. L'aiguille des heures doit
cependant effectuer un mouvement circulaire uniforme. Il serait très étrange et déroutant si chaque heure
écoulée pleinement sautait directement à l'heure suivante.