User manual

74
CHAMP = pygame.display.set_mode((400, 400)); CHAMP.fill(BLANC)
Une fenêtre de 400 x 400 pixel est ouverte et complétement colorée en blanc.
MX = 200; MY = 200; MP = ((MX, MY))
Trois variables déterminent les coordonnées du point central(centre)à partir duquel tous les autres éléments
graphiques, le cadran et les aiguilles sont placés. Les variables
MX et MY contiennent les coordonnées x et y
du point central, la variable
MP le point central comme point, tel qu'il est utilisé pour les fonctions
graphiques.
La définition d'une fonction vient ensuite. Elle calcule la distance entre le centre et un des points d'angle
dans le système de coordonnées. Cette fonction est appelée plusieurs fois dans le programme pour
représenter à la fois le cadran et les aiguilles.
def point(A, W):
w1 = radians(W * 6 – 90); x1 = int(MX + A * cos(w1))
y1 = int(MY + A * sin(w1)); return((x1, y1))
La fonction utilise deux paramètres : A est la distance entre le point souhaité et le centre W est l'angle formé
par rapport au centre. Pour simplifier la représentation dans le cas de l'horloge, nous prenons l'angle formé
dans le sens antihoraire par rapport à l'axe vertical de 12 heures. L'angle n'est pas exprimé en degré mais en
minutes, 1/60 d'un tour complet, dans la fonction. Ces hypothèses permettent de ne pas faire de nombreux
calculs intermédiaires.
Comme la plupart des langages de programmation, Python calcule les unités angulaires en radian et non en
degré. La fonction
radian() de la bibliothèque math convertit les degrés en radians. Pour ce faire, l'angle
utilisé dans le programme en minute est multiplié par 6 pour obtenir des degrés puis on soustrait 90 degrés
pour que l'axe vertical 0 pointe vers le haut, comme la minute 0 de chaque heure. Cet angle converti en
radians est enregistré à l'intérieur de fonction dans la variable
w1 pour les calculs ultérieurs.
L'affichage d'une horloge analogique repose sur les fonctions trigonométriques sinus et cosinus. Elles
déterminent les coordonnées à partir de l'angle d'un point en radian par rapport au point central (
w1) dans le
système de coordonnées rectangulaire (
x1 et y1). Les coordonnées du point central sont prises à partir des
variables
MX et MY qui sont définies en dehors de la fonction et appliquées globalement. La distance du point
par rapport au point central est obtenue via le paramètre
A de la fonction. La fonction int() est dérivée du
résultat de la valeur entière, car les coordonnées de pixel peuvent être données seulement avec des entiers.
La valeur de retour de la fonction est un point géométrique avec les coordonnées calculées
x1 et y1, qui sont
définies comme tous les points entre des parenthèses.
Le cadran est dessiné selon la définition de cette fonction.
for i in range(60):
pygame.draw.circle(CHAMP, NOIR, point(190, i), 2)