Dlzlogic a écrit:Merci de réagir.
Il est vrai que je me place dans un contexte d'utilisation et non théorique. Mais comme on fait appel aux maths, il faut être d'accord dans la signification des termes.
J'appelle transformation géométrique l'application qui à une figure F que l'appelle "de départ" une figure F' que j'appelle "d'arrivée".
On utilise 4 transformations
1- la translation
2- la rotation
3- l'homothétie
4- l'affinité.
L'inversion ne nous intéresse pas.
La similitude est le produit des 3 premières. Cette transformation conserve les angles et les rapports de distances. On l'appelle quelque fois "changement de base".
Ok jusqu'ici, mis à part qu'il te manque les symétries. Tu te limites aux similitudes directes (qui conservent l'orientation.)
Dlzlogic a écrit:Etant donné une figure de départ et une figure d'arrivée, il existe une infinité de similitudes qui permettent de passer de l'une à l'autre. L'une d'elle étant telle que DX et DY sont nuls, c'est donc une transformation linéaire. En d'autres termes, quelle que soit l'écriture, elle est identique à une transformation linéaire, dont elle est linéaire. (ceci est mon affirmation personnelle).
Là je ne suis pas d'accord. Pour peu que ta figure F aie suffisamment de points, la similitude est unique. Et si l'origine est modifiée par la transformation, DX et DY ne peuvent pas être nuls. L'exemple le plus simple est une translation de vecteur non nul: ce n'est pas une transformation linéaire.
Dlzlogic a écrit:X = DX + XX.x + XY.y
Y = DY + YX.x + YY.y
Cette transformation est une transformation affine. Soient deux figures F et F', telles que définies plus haut, il n'existe qu'une transformation et une seule qui permette de passer de l'une à l'autre. C'est le produit des 4 transformations élémentaires. On pourrait discuter de ses avantages et de ses inconvénients, mais ce serait hors-sujet.
Cette transformation ne conserve ni les angles ni les rapports de distance mais elle conserve le parallélisme. Il me parait étonnant qu'on lui donne le même nom que la similitude.
D'accord, c'est une transformation affine. Maintenant tu dis qu'elle est unique, j'ai un peu de mal à te suivre. Ce n'est pas forcément une similitude, je ne sais pas où tu as lu qu'on l'appelait comme ça.
Dlzlogic a écrit:Concernant la question d'origine, l'expression "quatrième coordonnée" me gène beaucoup.
Quand on travaille en 2.D, on a 2 coordonnées, quand on travaille en 3D on a 3 coordonnées.
Si on a 4 coordonnées, on travaille en 4 dimensions, ça ne me gène pas particulièrement, sauf quand on parle "d'astuce".
En 2D une matrice de rotation sera de la forme
1 1
1 -1
Une matrice de translation sera de la forme
1
1
Si on applique la translation la composition se fait par addition et non produit. C'est une caractéristique de la translation et je n'ai toujours pas compris, même si je l'ai admis, que cette caractéristique fasse migrer une transformation de l'ensemble des applications linéaires vers l'ensemble des applications affines.
On m'objectera certainement que je veux jouer sur les termes. Mais une chose est sûr : je développe (programmation) en 2D et j'ai 2 coordonnées, en 3D et j'ai 3 coordonnées, la translation n'a rien à voir, en tout cas dans mes développements.
On n'est pas obligé de rajouter une coordonnée. Relis mon premier post: quand je dis qu'une transformation affine peut être stockée sous la forme (A; t), en 2D A est une matrice 2x2 et t un vecteur (2 coordonnées.) Cela fait 6 paramètres qui sont les mêmes que ceux que tu mentionnes.
Quand j'écris:
u' = Au + t
C'est la même chose que:
X = DX + XX.x + XY.y
Y = DY + YX.x + YY.y
J'ai ensuite donné les avantages d'utiliser une coordonnée supplémentaire, qui sont principalement d'avoir un code plus concis et élégant.
Si tu veux une interprétation plus visuelle, toujours en 2D, on se place dans un espace 3D et on travaille dans le plan d'équation z=1. Ainsi, les points de ce plan sont de la forme (x; y; 1), et les vecteurs parallèles à ce plan (vitesses, vecteurs normaux, etc) de la forme (x; y; 0).
On s'intéresse aux transformations linéaires de l'espace telles que l'image du plan z=1 soit dans le plan z=1. Cela impose que la 3ème ligne de la matrice soit (0 0 1). On peut alors représenter une translation dans ce plan de vecteur (tx; ty) par la matrice:

Tu remarqueras que multiplier cette matrice par un point (x; y; 1) donne comme image (x + tx; y + ty; 1) , et que la multiplier par un vecteur (x; y; 0) donne (x; y; 0). (Les vecteurs sont bien inchangés.)
Autre remarque: ceci est une transformation linéaire de l'espace 3D, ce n'est donc pas une translation dans l'espace. Mais sa restriction au plan z=1 donne bien une translation.