En géométrie euclidienne, un vecteur est représenté par un segment orienté (une flèche), ayant pour extrémités un point de départ et un point d’arrivée.
Pour cet exercice, vous devez utiliser en priorité le fichier squelette ex12-vector2d.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 Vector2D
:
x
et y
, les coordonnées du vecteur ;Vérifier le bon fonctionnement de la classe en manipulant quelques instances depuis main()
(les doctests de la fonction donnent des exemples).
Le constructeur prendra en argument des instances de Point2D
.
Redéfinir les méthodes dunder suivantes :
__abs__
pour retourner la norme du vecteur ;__str__
pour un affichage pertinent lors de l’appel à :func:print
;__eq__
afin que l’opérateur d’égalité ==
retourne un résultat cohérent compte tenu du contexte ;__neg__
afin que l’opération -v
retourne l’opposé du vecteur v
;__add__
afin que l’opérateur d’addition +
retourne un résultat cohérent compte tenu du contexte ;__sub__
afin que l’opérateur de soustraction -
retourne un résultat cohérent compte tenu du contexte ;Une fois la classe opérationnelle, ET SEULEMENT DANS CE CAS, lancer les doctests dans un terminal.