Instructions

65
ROT
= (255, 0, 0
)
W
EISS
= (255, 255, 255
)
SCHWARZ = (0, 0, 0
)
Die drei in der Gra
k verwendeten Farben werden in drei Variablen gespeichert
.
F
ELD
= pygame.
d
isp
l
ay.set_mo
d
e((400, 400)
)
FELD.fill
(
WEISS
)
Ein 400x400 Pixel gro
ß
es Fenster wird g
ff
net und komplett mit Wei
ß
ge
f
üllt.
M
X = 2
00
MY
= 2
00
MP =
((
MX, MY
))
Drei Variablen legen die Koordinaten des Mittelpunkts
f
est, au
f
den bezogen alle weiteren gra
schen Elemente,
das Zi
ff
erblatt und der Uhrzeiger ausgerichtet werden. Die Variablen
MX
un
d
MY
ent
h
a
l
ten
d
ie x- un
d
y-Koor
d
i
-
naten
d
es Mitte
l
pun
k
ts,
d
ie Varia
bl
e
MP
enthält den Mittelpunkt als Punkt, wie er
f
ür gra
sche Funktio nen ver
-
w
e
n
det
wir
d
.
Als Nächstes
f
olgt die De
nition einer wichtigen Funktion, die anhand des Abstands zum Mittelpunkt und
eines Winkels Punkte im Koordinatensystem berechnet. Diese Funktion wird
f
ür die Darstellung sowohl des
Zi
ff
erblatts als auch der Uhrzeiger mehr
f
ach im Programm au
f
geru
f
en
.
def punkt(
A
, W)
:
w1 = ra
d
ians
(
W * 6 — 90
)
x1 = int
(
MX +
A
* cos
(
w1
))
y1 = int(M
Y
+
A
* sin(w1)
)
return
((
x1, y1
))
Di
e
F
u
n
kt
i
o
n v
e
rw
e
n
det
zw
e
i P
a
r
a
m
ete
r:
A
ist
d
er A
b
stan
d
d
es gewünsc
h
ten Pun
k
ts vom Mitte
l
pun
k
t,
W
i
st
de
r
Winkel, bezogen au
f
den Mittelpunkt. Um die Darstellung im Fall der Uhr zu verein
f
achen, nehmen wir den
Winkel im Uhrzeigersinn, bezogen au
f
die senkrechte 12-Uhr-Richtung an. Der Winkel wird auch nicht in Grad,
son
d
ern in Minuten — 1/60 eines Vo
llk
reises — an
d
ie Fun
k
tion ü
b
erge
b
en. So
l
c
h
e Anna
h
men sparen vie
l
e
Zwisc
h
en
b
erec
h
nungen
.
Python rechnet wie die meisten Programmiersprachen Winkeleinheiten in Bogenma
ß
und nicht in Grad. Die
F
u
n
kt
i
o
n
r
adian
()
aus
de
r m
ath
-Bibliothek rechnet Grad in Bogenma
ß
um. Dazu wird die im Programm
verwendete Winkelangabe in Minuten mit 6 multipliziert, um au
f
Grad zu kommen, und anschlie
ß
end wird
90 Gra
d
su
b
tra
h
iert,
d
amit
d
ie 0-Ric
h
tung sen
k
rec
h
t nac
h
o
b
en zeigt, wie
d
ie Minute 0 je
d
er Stun
d
e. Dieser
Winkel, umgerechnet in Bogenma
ß
, wird
f
ür weitere Berechnungen innerhalb der Funktion in der Variablen
w1
gespeic
h
ert
.
Die Anzeige einer Analoguhr basiert au
f
den Winkel
f
unktionen Sinus und Kosinus. Damit werden aus dem
Winkel eines Punkts im Bogenmaß gegenüber dem Mittelpunkt (
w1
)
dessen Koordinaten im rechtwinkligen
Koordinatensystem
(
x1
un
d
y1
) ermittelt. Die Koordinaten des Mittelpunkts werden aus den Variablen
MX
un
d
MY
übernommen, die au
ß
erhalb der Funktion de
niert wurden und global gelten. Der Abstand des Punkts
vom Mitte
l
pun
k
t wir
d
ü
b
er
d
en Parameter
A
d
er Fun
k
tion ü
b
erge
b
en. Die Fun
k
tion
i
nt
()
ermitte
l
t aus
d
em
Ergebnis den Integerwert (Ganzzahl), da Pixelkoordinaten nur als Integer angegeben werden können
.
10145-5 Raspberry Pi verstehen und anwenden_01.indd 6510145-5 Raspberry Pi verstehen und anwenden_01.indd 65 30.06.2017 10:09:3630.06.2017 10:09:36