Mise à l'échelle
La plupart des applications de cao et de dessin fournissent des fonctionnalités qui mettez à l’échelle la sortie créée par l’utilisateur. Les applications qui incluent des fonctionnalités de mise à l’échelle (ou de zoom) appellent la fonction SetWorldTransform pour définir l’espace du monde approprié sur la transformation d’espace de page. Cette fonction reçoit un pointeur vers une structure XFORM contenant les valeurs appropriées. Les membres eM11 et eM22 de XFORM spécifient les composants de mise à l’échelle horizontale et verticale, respectivement.
Lorsque la mise à l’échelle se produit, les lignes verticales et horizontales (ou vecteurs), qui constituent un objet, sont étirées ou compressées par rapport à l’axe X ou Y. L’illustration suivante montre un rectangle de 20 unités de 20 unités mis à l’échelle verticalement à deux fois sa hauteur d’origine lorsqu’il est copié de l’espace de coordonnées du monde vers l’espace de coordonnées de page.
Dans l’illustration précédente, les lignes verticales qui définissent le côté du rectangle d’origine mesurent 20 unités, tandis que les lignes verticales qui définissent les côtés du rectangle mis à l’échelle mesurent 40 unités.
La mise à l’échelle verticale peut être représentée par l’algorithme suivant.
y' = y * Dy
Où y' est la nouvelle longueur, y est la longueur d’origine et Dy le facteur de mise à l’échelle verticale.
La mise à l’échelle horizontale peut être représentée par l’algorithme suivant.
x' = x * Dx
Où x' est la nouvelle longueur, x est la longueur d’origine et Dx le facteur de mise à l’échelle horizontale.
Les transformations de mise à l’échelle verticale et horizontale peuvent être combinées en une seule opération à l’aide d’une matrice 2 par 2.
|x' y'| = |Dx 0| * |x y|
|0 Dy|
La matrice 2 par 2 qui a produit la transformation de mise à l’échelle contient les valeurs suivantes.
|1 0|
|0 2|