User manual
FELD = pygame.display.set_mode((400, 400)); FELD.fill(WEISS)
Megnyílik egy 400 x 400 pixel méretű ablak, és teljesen kitöltődik fehér színnel.
MX = 200; MY = 200; MP = ((MX, MY))
Három változó rögzíti a középpontok koordinátáit, amelyekhez viszonyítva van az összes többi
grafikus elem, a számlap és az óramutató. Az
MX és MY változó tartalmazza a középpontok x-
és y-koordinátáját, az
MP változó a középpontot egy pontként, ahogyan a grafikus funkciókhoz
alkalmazzuk.
Következőül egy fontos funkció definíciója jön, amely a középponttól való távolság és egy szög
függvényében kiszámítja koordinátarendszerben lévő pontokat. Ez a funkció a programban
többször lehívásra kerül mind a számlap, mind az óramutató megjelenítéséhez.
A funkció két paramétert alkalmaz: A a kívánt pontnak a középpontól vett távolsága, W a
középponthoz viszonyított szög. Annak érdekében, hogy az óra megjelenítése egyszerűbb
legyen, az óramutató szögét az óramutató járásával megegyező irányban a 12-órán átmenő
függőleges vonalhoz mérten vesszük fel. A szöget sem fokban, hanem percben, a teljes kör
1/60 részeként, adjuk át a funkciónak. Az ilyen felvétellel sok köztes számítást takarítunk meg.
A Python a legtöbb programozási nyelvhez hasonlóan ívmérték szögegységben számol, és
nem fokszámban. A
math-könyvtár radian() funkciója átszámítja fokszámban vett szöget
ívmértékben vett szögre. Ehhez a programban használt perc-szögadatot 6-tal megszorozza,
hogy fokszám-adatot kapjon, majd 90 fokot levon belőle, hogy a 0-irány felfelé mutasson, mint
a 0 perc minden egyes órában. Ez az ívmértékre átszámított szög a funkción belüli további
számításokhoz a
w1 változóban tárolódik.
Egy analóg óra megjelenítése a sinus és a cosinus szögfüggvényen alapszik . Általuk számítja
ki a funkció egy pontnak a középponthoz (
w1)viszonyított, ívmértékben vett szögéből
koordinátáit a derékszögű koordinátarendszerben (
x1 és y1). A középpont koordinátáit az MX
és MY változókból veszi át, amelyek a funkción kívül lettek definiálva, és általános érvényűek.
A pontnak a középponttól való távolságát az
A paraméterből kapja a funkció. Az int() funkció
állapítja meg az eredményből az egészrészt, mivel a pixelkoordináták csak egészrészként
adhatók meg.
A funkció visszatérési értéke egy geometriai pont a kiszámított x1 és y1koordinátákkal, amelyek
az összes többi ponttal megegyező módon kettős zárójelbe kerülnek.
Ennek a funkciónak a definiálása után a számlap megrajzolása jön.
def punkt(A, W):
w1 =
radians(W *
6 –
90); x1
=
int(MX
+ A
* cos(w1))
y1
=
int(MY
+ A
* sin(w1)); return((x1, y1))
for
i
in
range(60):
pygame.draw.circle(FELD,
SCHWARZ,
punkt(190, i), 2)
74