Nous supposons la définition d'un produit scalaire.
On peut la trouver sur cette page.
L'exemple classique sur ℝn est x y = i = 1 n x i y i si x=(x1, ..., xn) et y=(y1, ... ,yn)
Un espace vectoriel 'euclidien' consiste en la donnée d'un espace vectoriel réel muni d'un produit scalaire (forme bilinéaire symétrique définie positive).
Un 'espace affine euclidien' est un espace affine dont l'espace vectoriel directeur est un espace vectoriel euclidien.
On rappelle que la 'norme' d'un vecteur x est donnée par x = x x
Sur un espace affine euclidien la 'distance' de deux points M et N est le réel positif défini par : d ( M , N ) = MN
Muni de cette distance un espace affine euclidien, devient un espace métrique.
Nous avons également la notion de distance d'un point M par rapport à un sous-ensemble X d'un même espace euclidien.
L'ensemble des nombres d(M,N) où N parcourt X est une ensemble de nombres réels minoré par 0, il admet donc un borne inférieure m.
C'est cette borne inférieure que nous appellerons par définition la distance de M à X.
Remarquons que cette distance n'est pas forcément 'atteinte', en ce sens qu'il n'existe pas forcément un point N ∈ X tel que d(M,N)=d(M,X).
Nous pouvons par exemple voir cela en prenant pour M l'origine et pour X et pour X une 'spirale hyperbolique d'équation polaire ρ=1/θ θ ∈ [π,+∞[, qui s'enroule autour de l'origine en s'en rapprochant de plus en plus sans jamais l'atteindre.

Voici maintenant un exemple où la distance de M à X est atteinte en un nombre infini de points. X est ici le complémentaire d'un cercle dont M est le centre.
De la même façon on peut donner la définition de la distance de deux sous-ensembles d'un même espace affine X, et Y comme étant :
m = inf M X , N Y d ( M , N )
La encore cette distance n'est pas forcément 'atteinte'.
Prendre par exemple pour X dans le plan l'ensemble y>1/x et pour Y l'ensemble y<0.

La distance des deux ensembles est nulle mais leur intersection est vide.

Café Python

Voici le module 'euclidiens.py' qui n'est rien d'autre que le module 'affines.py' modifié.
On a ajouté de nouvelles méthodes, le produit scalaire de deux vecteurs, la norme d'un vecteur et la distance de deux points.