Transformations et éléments de page

Ce guide décrit les concepts sous-jacents utilisés lors de la transformation (c'est-à-dire déplacement, rotation, mise à l'échelle et cisaillement) des éléments de la page, en mettant l'accent sur la transformation affine sous-jacente et ses opérations.

Pour en savoir plus sur l'utilisation des transformations affines pour obtenir des résultats spécifiques, consultez le guide Formes de taille et de position.

La taille et la position visuelles d'un élément de page sont contrôlées par : size et transform. La taille décrit la taille idéale ou intégrée de l'élément de page en cours de création. La transformation spécifie un modèle matrice de transformation affine qui spécifie comment un objet à sa taille intégrée est transformé pour donner lieu à son l'apparence visuelle finale.

Schéma d'une forme rendue par une transformation affine

Lorsque vous sélectionnez un élément de page dans l'interface utilisateur de Slides et que vous modifiez sa taille visuelle à l'aide des poignées d'ajustement, vous mettez à jour cette matrice de transformation. Le fait de déplacer l'élément sur la page ou de le faire pivoter met également à jour la la matrice de transformation.

Utilisez l'interface utilisateur de Slides pour vous lancer

L'arithmétique matricielle que vous utilisez pour transformer et redimensionner les éléments de la page est est très puissant, mais peut être intimidant au premier abord. la plupart des sections de cette page des calculs. Toutefois, vous pouvez simplifier la spécification des transformations en utilisant l'approche suivante:

  1. Créez des éléments de page à l'aide de l'interface utilisateur de Slides.
  2. Positionnez ces éléments de page à l'échelle comme vous le souhaitez, en utilisant toujours l'interface utilisateur de Slides.
  3. Lisez la taille et la transformation de ces éléments à l'aide de la méthode get.

Cela peut suffire à vous lancer ; le reste de ce guide explique transformer des calculs que vous pouvez utiliser pour manipuler des éléments de page en détail.

Matrices de transformation affine

Les matrices de transformation affine bidimensionnelle sont couramment utilisées dans les graphiques pour contrôler l'échelle, la rotation, le cisaillement, la réflexion et la translation éléments. Dans l'API Slides, la transformation d'un élément de page est représentée sous la forme d'une matrice 3x3:

$$A=\begin{bmatrix} scale\_x & shear\_x & translate\_x\\ shear\_y & scale\_y & translate\_y\\ 0 & 0 & 1 \end{bmatrix}$$

Les paramètres utilisés dans la transformation sont les suivants:

translate_x Les paramètres de traduction spécifient la position (X,Y) du coin supérieur gauche de l'élément de page, par rapport à l'angle supérieur gauche de la page. Vous spécifiez la position relative à l'aide de Unités en points (pt) ou en unités métriques anglaises (EMU).
translate_y
scale_x Les paramètres d'échelle contrôlent la taille d'un élément de page lorsque rendu. Ce sont des facteurs de multiplication sans unité ; par exemple, un scale_x de 1,5 agrandit la largeur de l'élément de 50%.
scale_y
shear_x Les paramètres de cisaillement sont également sans unité et contrôlent l'inclinaison d'une page. . Vous pouvez utiliser conjointement les paramètres de mise à l'échelle et de cisaillement pour faire pivoter une page. .
shear_y

Vous trouverez de nombreux exemples sur le Web montrant comment les matrices de transformation 2D sur le rendu graphique des objets.

La matrice de transformation est relative au groupe ou à la page qui le contient . Par exemple, si vous faites pivoter un groupe contenant un rectangle, les transform du groupe les valeurs du champ reflètent la rotation, mais la valeur transform du rectangle les valeurs des champs ne le sont pas.

Calcul de la taille visuelle

Pour déterminer la taille visuelle (affichée) d'un élément de page, vous devez tenir compte les propriétés de taille et de transformation. Vous ne pouvez pas déterminer lequel de deux éléments de page sont visuellement plus grands en comparant simplement leurs propriétés de taille: vous devez mapper les limites de l'élément à l'aide de la matrice de transformation pour calculer la taille d'affichage.

Mapper un point

Pour mapper un point spécifique à l'aide de la matrice de transformation, convertissez le point (x, y) dans un vecteur [x, y, 1], puis effectuer une multiplication matricielle. Tenez compte des Mise en correspondance d'un point p:

\[p' = Ap\]

Vous obtenez alors le résultat suivant:

$$\begin{bmatrix} x'\\ y'\\ 1 \end{bmatrix} =\begin{bmatrix} scale\_x & shear\_x & translate\_x\\ shear\_y & scale\_y & translate\_y\\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x\\ y\\ 1 \end{bmatrix}$$

Par conséquent, les coordonnées du nouveau point p' sont:

$$x' = (scale\_x \times x) + (shear\_x \times y) + translate\_x\\ y' = (scale\_y \times y) + (shear\_y \times x) + translate\_y$$

Calculer la limite

Déterminer la taille de rendu du cadre de délimitation d'un élément après une transformation de ciseau et de mise à l'échelle, utilisez:

$$width' = (scale\_x \times width) + (shear\_x \times height)\\ height' = (scale\_y \times height) + (shear\_y \times width)$$

Pour en savoir plus sur l'utilisation des transformations affines pour obtenir des résultats spécifiques, consultez le guide Formes de taille et de position.

Limites

Certains champs de dimensionnement et de positionnement sont incompatibles avec certains types de pages. éléments. Le tableau ci-dessous récapitule la compatibilité de certains éléments de page avec les champs de dimensionnement et de positionnement.

Champ Forme Vidéo Tableau
Translation
Scale Non**
Cier Non Non

** Pour mettre à jour les dimensions des lignes et des colonnes d'un tableau, utilisez UpdateTableRowPropertiesRequest et UpdateTableColumnPropertiesRequest

Tous les champs de dimensionnement et de positionnement peuvent donner des résultats inattendus si l'élément de page présente des cisailles. Toutes ces limites sont susceptibles d'être modifiées. Pour obtenir les informations les plus récentes, consultez API Google Slides.