Définition d’une inversion
On considère un espace affine euclidien
Si
est un point de , on appelle inversion de centre l’application qui à un point de distinct de associe le point tel que le vecteur soit colinéaire et de même sens que le vecteur et de norme inverse de celle de .
Autrement dit,
L’inversion de centre
On constate immédiatement que l’inversion de centre
On remarque également que si
et donc
Formulation complexe
Dans le cas où
Hypersphères et hyperplans
On rappelle qu’un hyperplan affine est un sous-espace affine dont la direction est un hyperplan vectoriel, c’est-à-dire le noyau d’une forme linéaire. Si
On appelle hypersphère de centre
A noter que, si
Equation d’un hyperplan
Un hyperplan affine
Réciproquement, si
Les ensembles d’équations
, avec un vecteur non nul et , sont exactement les hyperplans affines de .
On peut remarquer que si
Equation d’une hypersphère
L’hypersphère
ou encore
en posant
Réciproquement, si
est bien une hypersphère. En effet, en posant
Les ensembles d’équations
, avec un vecteur et , sont exactement les hypersphères de .
On peut remarquer que si
Image des hyperplans affines et des hypersphères par une inversion
Dans tout ce paragraphe, on note
Image d’un hyperplan affine
On se donne un hyperplan affine
Ainsi, pour tout point
Si
Si
c’est-à-dire une hypersphère contenant
On peut le vérifier à l’aide de l’applet suivante. L’image d’une droite
Les points
La vidéo suivante montre l’image (en vert) d’un plan mobile (en bleu) par une inversion dont le centre est représenté par un point rouge.
L’image du plan est bien une sphère passant par le centre de l’inversion sauf lorsque le plan passe lui-même par le centre de l’inversion.
from numpy import meshgrid, linspace, cos, sin, pi, ones, logspace
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.pyplot import figure
from matplotlib.animation import FuncAnimation, writers
def generate_plane(z):
Zp = z * ones((n, n))
return Zp
def generate_sphere(z):
n = x ** 2 + y ** 2 + z ** 2
Xi = x / n
Yi = y / n
Zi = z / n
return Xi, Yi, Zi
def update(i):
ax.cla()
ax.set_aspect('equal')
ax.set_axis_off()
ax.set_xlim(-3, 3)
ax.set_ylim(-3, 3)
ax.set_zlim(-3, 3)
ax.view_init(-10 + i / frames * 20, i / frames * 180)
ax.scatter([0], [0], [0], color='red')
z = -2 + i * 4 / frames
Zp = generate_plane(z)
ax.plot_surface(Xp, Yp, Zp, alpha=.5, color='blue')
Xi, Yi, Zi = generate_sphere(z)
ax.plot_surface(Xi, Yi, Zi, alpha=.5, color='green')
fig = figure()
ax = fig.gca(projection='3d')
n = 50
x = linspace(-2, 2, n)
y = linspace(-2, 2, n)
Xp, Yp = meshgrid(x, y)
r = logspace(-2, 2, n)
p = linspace(0, 2 * pi, n)
R, P = meshgrid(r, p)
x, y = R * cos(P), R * sin(P)
frames = 100
ani = FuncAnimation(fig, update, frames=frames, interval=100, repeat=True)
Writer = writers['ffmpeg']
writer = Writer(fps=20, metadata=dict(artist='Laurent Garcin'), bitrate=18000)
ani.save('inversion_plan.mp4', writer=writer)
Image d’une hypersphère
On se donne une hypersphère
Ainsi, pour tout point
Si
Si
c’est-à-dire une hypersphère ne contenant pas
A nouveau, on peut vérifier que l’image du cercle de rayon
Les points
La vidéo qui suit montre l’image (en vert) d’une sphère mobile (en bleu) par une inversion dont le centre est représenté par un point rouge.
On constate bien que l’image de la sphère mobile est bien une sphère sauf lorsqu’elle passe par le centre de l’inversion, auquel cas c’est un plan.
from numpy import meshgrid, linspace, cos, sin, pi
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.pyplot import figure
from matplotlib.animation import FuncAnimation, writers
def generate_sphere(X):
n = X ** 2 + Y ** 2 + Z ** 2
Xi = X / n
Yi = Y / n
Zi = Z / n
return Xi, Yi, Zi
def update(i):
ax.cla()
ax.set_aspect('equal')
ax.set_axis_off()
ax.set_xlim(-3, 3)
ax.set_ylim(-3, 3)
ax.set_zlim(-3, 3)
ax.scatter([0], [0], [0], color='red')
X = X0 - 3 + 6 * i / frames
ax.plot_surface(X, Y, Z, alpha=.5, color='blue')
Xi, Yi, Zi = generate_sphere(X)
ax.plot_surface(Xi, Yi, Zi, alpha=.5, color='green')
fig = figure()
ax = fig.gca(projection='3d')
n = 50
frames = 100
r = 1
p = linspace(0, 2 * pi, n)
t = linspace(-pi / 2, pi / 2)
P, T = meshgrid(p, t)
X0, Y, Z = r * cos(P) * cos(T), r * sin(P) * cos(T), r * sin(T)
ani = FuncAnimation(fig, update, frames=frames, interval=100, repeat=True)
Writer = writers['ffmpeg']
writer = Writer(fps=20, metadata=dict(artist='Laurent Garcin'), bitrate=18000)
ani.save('inversion_sphere.mp4', writer=writer)
Inégalité de Ptolémée
On se place maintenant dans le cas où
- L’image d’une droite
par l’inversion de centre est donc un cercle passant par si ne passe pas par et elle-même sinon. - De même, l’image d’un cercle
par l’inversion de centre est un cercle ne passant pas par si ne passe pas par et une droite ne passant pas par sinon.
On considère quatre points
Remarquons que
Par inégalité triangulaire
ou encore
Cas d’égalité
Le cas d’égalité dans l’inégalité précédente se produit si et seulement si
Cas de cocyclicité
Si
Réciproquement, supposons que
Cas d’alignement
Si les points
Evidemment, puisque l’inversion de centre
Conclusion
Finalement, le cas d’égalité dans l’inégalité de Ptolémée ne se produit que dans les deux cas suivants :
-
, , et sont cocycliques dans cet ordre ; -
, , , sont alignés dans l’ordre ou .
Point à l’infini
On peut regrouper les équations d’hyperplan et d’hypersphère en une seule équation générique.
avec
En notant
On retrouve bien le fait que l’image d’un hyperplan/hypersphère est bien un hyperplan/hypersphère.
On peut même aller plus loin dans ce rapprochement entre hypersphères et hyperplans. En effet, un hyperplan peut-être vu comme un cas particulier d’hypersphère quitte à rajouter à l’espace affine
En notant
La preuve du cas d’égalité dans l’inégalité de Ptolémée se trouve alors simplifiée. Si
Notes
-
Plus précisément, la composée de l’application
(chemin décrivant le segment ) par l’inversion de centre est injective : elle ne prend donc qu’une fois les valeurs et , respectivement en et . ↩ -
On ajoute à la topologie de
les parties obtenues comme complémentaires de compacts de , auxquelles on adjoint le point : muni de cette topologie, l’espace porte le nom de compactifié d’Alexandrov de . Comme son nom l’indique, il est bien compact. ↩ -
Il faut néanmoins remarquer que toute droite se “referme à l’infini” en un cercle : dire que
, , , sont alignés sur une droite dans cet ordre signifie que les ponts , , et sont alignés au sens usuel dans l’ordre ou . ↩