"""
"""
#! /usr/bin/python3
# -*- coding: utf-8 -*-
# classe simple (exemple pédagogique) : vecteur (x, y)
# ( dans ce cas simple, il vaut mieux utiliser numpy.arrray((x,y)) )
import sys
import math
class vecteur :
def __init__(self, x, y) :
# initialisation d'un vecteur : u = vecteur(x,y)
self.x = x
self.y = y
return
def __str__(self) :
# écriture d'un vecteur : print(u) ou str(u)
chaine = ""
chaine += "(" + str(self.x) + ";" + str(self.y) + ")"
return chaine
def longueur(self) :
# formule de Pythagore
v = math.sqrt(self.x**2 + self.y**2)
return v
def __add__(self, v) :
# addition de 2 vecteurs : u + v
x = self.x + v.x
y = self.y + v.y
return vecteur(x, y)
def __mul__(self, v) :
# multiplication scalaire de 2 vecteurs : u * v
# (non standard) avec numpy : u.dot(v)
p = self.x * v.x + self.y * v.y
return p
def perpendiculaire(u, v):
# teste par Pythagore si 2 vecteurs sont perpendiculaires
# remarque (x, y) et (-y, x) sont perpendiculaires
w = u + v
if abs(w.longueur()**2 - u.longueur()**2 - v.longueur()**2) < 1.e-14 :
print("les vecteurs :", u, "et ", v, "sont perpendiculaires.")
else :
print("les vecteurs :", u, "et ", v, "ne sont pas perpendiculaires.")
return
# tests sur le triangle rectangle (3, 4, 5) :
u = vecteur(3, 0)
v = vecteur(0, 4)
w = u + v
print("Pythagore 1 : u²=", u*u, "v²=", v*v, "w²=", w*w, "(=u²+v²)")
# d'hypotenuse 5 et de cotes de l'angle droit 3 et 4
print("### Vecteurs ###")
u = vecteur(3, 4)
v = vecteur(-4, 3)
w = u + v
print("somme de 2 vecteurs : w=", w)
perpendiculaire(u, v)
print("Pythagore 2 : u²=", u*u, "v²=", v*v, "w²=", w*w, "(=u²+v²)")
"""
"""