Een klassieke kompasroos wordt onderverdeeld in 360°. De vier hoofdwindrichtingen staan op de hoofdassen, en worden respectievelijk noord, oost, zuid en west genoemd (zie figuur).
Deze hoofdwindrichtingen beslaan gebieden van ±45° rond de hoofdassen (zie tabel). Ze worden simpelweg gebruikt om overal ter wereld een welbepaalde richting aan te geven. Noord en zuid zijn gericht naar hun respectievelijke polen nabij elk uiteinde van de aardas. De rotatie van de aarde rond die as wordt gebruikt om de richtingen oost en west te definiëren.
richting | gebied |
---|---|
noord | [0°,45°[ en [315°,360°[ |
oost | [45°,135°[ |
zuid | [135°,225°[ |
west | [225°,315°[ |
Definieer een klasse Kompas waarmee instanties van kompassen kunnen aangemaakt worden. De naald van een kompas geeft telkens een hoek $$h \in {\mathbb{Z}}$$ (uitgedrukt in graden) aan, waarbij geldt dat $$0 \leq h < 360$$. De objecten van de klasse Kompas moeten ondersteuning bieden aan de volgende methoden:
Een initialisatiemethode waaraan optioneel een hoek $$h \in {\mathbb{Z}}$$ (uitgedrukt in graden) kan doorgegeven worden. Indien geen hoek wordt doorgegeven, dan veronderstellen we dat het kompas naar het noorden wijst.
Een methode __repr__ die een stringvoorstelling van het object teruggeeft, die overeenkomt met de Python expressie die kan gebruikt worden om eenzelfde object aan te maken. Hierbij moet de hoek $$h \in {\mathbb{N}}$$ altijd expliciet opgegeven worden, en moet gelden dat $$0 \leq h < 360$$.
Een methode __str__ die een stringvoorstelling van het object teruggeeft in het formaat h° (richting). Hierbij geeft $$h \in {\mathbb{N}}$$ de hoek aan waarnaar het kompas wijst, waarbij $$0 \leq h < 360$$, en is richting de corresponderende hoofdwindrichting.
Een methode draai waaraan een hoek $$h \in {\mathbb{Z}}$$ (uitgedrukt in graden) moet doorgegeven worden. Indien deze methode wordt aangeroepen, dan moet het kompas over de opgegeven hoek gedraaid worden.
Een methode windrichting die een string teruggeeft die de hoofdwindrichting beschrijft waarnaar het kompas wijst.
>>> kompas = Kompas()
>>> kompas
Kompas(0)
>>> kompas.windrichting()
'noord'
>>> print(kompas)
0° (noord)
>>> kompas.draai(222)
>>> kompas
Kompas(222)
>>> kompas.windrichting()
'zuid'
>>> print(kompas)
222° (zuid)
>>> kompas.draai(157)
>>> kompas
Kompas(19)
>>> kompas.windrichting()
'noord'
>>> print(kompas)
19° (noord)