De drie in de grafiek gebruikte kleuren worden in drie variabelen opgeslagen.
FELD = pygame.display.set_mode((400, 400)); FELD.fill(WEISS)
Een 400 x 400 pixel groot scherm wordt geopend en volledig met wit ingevuld.
MX = 200; MY = 200; MP = ((MX, MY))
Drie variabelen leggen de coördinaten van het middelpunt vast, waarop de betrokken verdere grafische
elementen, de wijzerplaat en de wijzers worden uitgelijnd. De variabelen
coördinaten van het middelpunt, de variabele
wordt gebruikt.
Als volgende volgt de definitie van een belangrijke functie, die aan de hand van de afstand tot het
middelpunt en een hoek, punten in het coördinatiesysteem berekend. Deze functie wordt voor de weergave
van zowel de wijzerplaat alsook de wijzers meerdere keren in het programma opgeroepen.
def punt(A, W):
w1 = radians(W * 6 – 90); x1 = int(MX + A * cos(w1))
y1 = int(MY + A * sin(w1)); return((x1, y1))
De functie gebruikt twee parameters:
gerelateerd aan het middelpunt. Om de weergave in het geval van de klok te vergemakkelijken, nemen we
de hoek met de wijzers van de klok mee op de verticale 12-uur-richting aan. De hoek wordt ook niet in
graden maar in minuten, 1/60 van een volledige cirkel, aan de functie overgegeven. Dergelijke
veronderstellingen besparen veel tussenberekeningen.
Python rekent zoals de meeste programmeertalen hoekeenheden in boogmaat en niet in graad. De functie
uit de
radian()
math
gebruikte hoekinformatie in minuten met 6 vermenigvuldigd, om de graad te berekenen, en aansluitend wordt
90 graden afgetrokken, opdat de 0-richting verticaal naar boven wijst, zoals de minuut 0 van elk uur. Deze hoek
omgerekend in boogmaat wordt voor verdere berekeningen binnen de functie in de variabele
De weergave van een analoge klok is gebaseerd op de hoekfuncties sinus en cosinus. Hiermee worden uit de
hoek van een punt in een boogmaat tegenover het middelpunt (
coördinatensysteem (
x1
overgenomen, die buiten de functie zijn gedefinieerd en algemeen gelden. De afstand van het punt vanaf het
middelpunt wordt via de parameter
integerwaarde (gehele getal), omdat pixelcoördinaten alleen als integer kunnen worden aangegeven.
De retourwaarde van de functie is een geometrisch punt met de berekende coördinaten
alle punten tussen dubbele haakjes wordt gezet.
Na het definiëren van deze functie wordt de wijzerplaat getekend.
for i in range(60):
pygame.draw.circle(FELD, SCHWARZ, punkt(190, i), 2)
74
is de afstand van het gewenste punt vanaf het middelpunt,
A
-bibliotheek, rekent graad om in boogmaat. Hiervoor wordt de in het programma
en
) bepaald. De coördinaten van het middelpunt worden uit de variabelen
y1
aan de functie overgedragen. De functie
A
het middelpunt als punt, zoals hij voor grafische functies
MP
) de coördinaten in een rechthoekig
w1
en
bevatten de x- en y-
MX
MY
opgeslagen.
w1
bepaalt uit het resultaat de
int()
en
x1
y1
de hoek
W
en
MX
MY
, die evenals