Dans le plan, un point peut être représenté par ses coordonnées
cartésiennes x
et y
.
Pour cet exercice, vous devez utiliser en priorité le fichier
squelette python-12-classes-point2d.py.
IMPORTANT : Enregistrez le avec
Right Click + Save Link As...
pour conserver
l’encodage.
Selon la convention de structuration des modules, ce fichier sera structuré en quatre parties :
L’objectif est d’écrire une classe Point2D
:
- dont les attributs sont ``x`` et ``y``, les coordonnées cartésiennes du point ;
- et possédant :
- une méthode ``move()`` avec 2 arguments ``dx`` et ``dy`` permettant de déplacer le point de telle sorte que ses nouvelles coordonnées soient ``(x+dx, y+dy)``.
- une méthode :meth:`distance` prenant en argument un autre ``Point2D`` et retournant la distance euclidienne entre le point courant et celui passé en argument.
Vérifier le bon fonctionnement de la fonction en effectuant un appel
depuis main()
et en affichant la valeur de retour (les
doctests de la fonction donnent des exemples d’appel et les valeurs de
retour correspondantes).
Le constructeur doit permettre de créer un point de coordonnées
(0,0)
si aucun paramètre ne lui est passé.
La méthode move()
ne retourne rien
(None
).
Pour le calcul de distance, il est efficace de faire appel à la
fonction math.hypot()
.
Redéfinir la méthode __str__()
pour un affichage
pertinent lors de l’appel à print()
.
Une fois la classe opérationnelle, ET SEULEMENT DANS CE CAS, lancer les doctests dans un terminal.