Home CAMA : ma01 Transformations isometriques
Post
Cancel

CAMA : ma01 Transformations isometriques

Lien de la note Hackmd

Cours du 30 / 03

1
2
3
4
angle = np.array([θ for θ in np.linspace(-np.pi/2,np.pi/2,7)])
shape1 = np.concatenate([np.array([np.cos(angle), np.sin(angle)]), 
                         np.array([[-0.5, -1, -1, -1], [1, 1, 0.5, 0]]),
                         np.array([[-0.5, 0], [-0.5, -1]])], axis=1)
1
2
[[ 0.     0.5    0.866  1.     0.866  0.5    0.    -0.5   -1.    -1.    -1.    -0.5    0.   ]
 [-1.    -0.866 -0.5    0.     0.5    0.866  1.     1.     1.     0.5    0.    -0.5   -1.   ]]

Matrice de rotation centrée en $(0, 0)$

Propriétés

  • Effectue une rotation de centre (0,0) et d’angle θ
  • Déterminant = 1
  • Matrice orthogonale $\rightarrow$ pas de déformation ni d’agrandissement de la forme (automorphisme orthogonal)
1
2
3
θ = np.pi / 4

R = np.array([[np.cos(θ), -np.sin(θ)], [np.sin(θ), np.cos(θ)]])
1
2
[[ 0.707 -0.707]
 [ 0.707  0.707]]
1
R @ shape1 # multiplication de matrices

  • Matrice orthogonale donc (par définition) $R.R^T = \textrm{Id}$.
  • La transposée est la rotation d’angle -θ puisque sinus est une fonction impaire.

Symétrie axiale

1
2
3
4
5
6
7
8
def (α):
    return np.array([[np.cos(α), -np.sin(α)], [np.sin(α), np.cos(α)]])

Sx = np.array([[1, 0],[0,-1]])

θ = 70 * (2 * np.pi)/360  # 70 degrés

(θ) @ Sx @ (-θ) @ shape1

La rotation selon l’angle est :

1
(θ) @ Sx @ (-θ)
1
2
[[-0.766  0.643]
 [ 0.643  0.766]]

Translation

  • Une translation est une addition : $T(\textbf{x}) = \textbf{x} + \textbf{v}_t$.
  • On change la représentation des points pour exprimer les translations sous forme de produit matriciel : $\textbf{x} = (x_1, x_2)$ devient $\textbf{x} = (x_1, x_2, 1)$
1
2
3
4
v = np.array([1,2])

T = np.identity(3) # matrice de translation
T[0:2,2] = v
1
2
3
4
Matrice de translation:
 [[1. 0. 1.]
 [0. 1. 2.]
 [0. 0. 1.]]
1
2
3
shape1_3d = np.concatenate([shape1, np.ones((1, len(shape1[0])))], axis=0) 
# rajoute une nouvelle dimension à la matrice pour la translation
T @ shape1_3d

Il y a 2 types d’isométries :

  • l’isométrie vectorielle ou automorphisme orthogonal : $\forall\, \textbf{x}, \;||\textbf{f}(\textbf{x})|| = \textbf{x}$ et conserve les angles
  • l’isométrie geométrique : $\forall\, \textbf{a}, \textbf{b}, \; ||\textbf{f}(\textbf{a}) - \textbf{f}(\textbf{b})|| = ||\textbf{a} - \textbf{b}||$
This post is licensed under CC BY 4.0 by the author.