Trasformazioni ed elementi della pagina

Questa guida descrive i concetti sottostanti utilizzati per trasformare (spostamento, rotazione, scalabilità e taglio) gli elementi della pagina, in particolare la trasformazione affine sottostante e le sue operazioni.

Per ulteriori informazioni su come utilizzare le trasformazioni affine per ottenere risultati specifici, consulta la guida Forme di dimensioni e posizione.

Le dimensioni visive e la posizione di un elemento di pagina sono controllate da due proprietà: size e transform. Le dimensioni descrivono le dimensioni ideali o integrate dell'elemento della pagina in fase di creazione. La trasformazione specifica una matrice di trasformazione affine bidimensionale che specifica in che modo un oggetto nelle sue dimensioni integrate viene trasformato in il suo aspetto visivo finale.

Diagramma di una forma rappresentata attraverso una trasformazione affine

Quando selezioni un elemento di pagina nell'interfaccia utente di Presentazioni e ne modifichi le dimensioni visive utilizzando i punti di manipolazione di regolazione, in realtà stai aggiornando questa matrice di trasformazione. Lo spostamento o la rotazione dell'elemento nella pagina comporta anche l'aggiornamento della matrice di trasformazione dell'elemento.

Utilizza l'interfaccia utente di Presentazioni per iniziare

L'aritmetica della matrice che utilizzi per trasformare e ridimensionare gli elementi della pagina è molto potente, ma all'inizio può essere scoraggiante; la maggior parte di questa pagina descrive questi calcoli. Tuttavia, puoi semplificare la specifica di trasformazioni e dimensioni utilizzando il seguente approccio:

  1. Crea elementi di pagina utilizzando l'interfaccia utente di Presentazioni.
  2. Posiziona gli elementi in scala come preferisci, sempre utilizzando l'interfaccia utente di Presentazioni.
  3. Leggi le dimensioni e trasforma questi elementi utilizzando il metodo get.

Questo potrebbe essere sufficiente per iniziare; la parte restante di questa guida illustra in dettaglio i calcoli della trasformazione che puoi utilizzare per manipolare gli elementi della pagina.

Matrici di trasformata di affine

Le matrici di trasformazione affine bidimensionale sono comunemente utilizzate dalle librerie grafiche per controllare la scala, la rotazione, il taglio, il riflesso e la traslazione degli elementi. Nell'API Presentazioni, la trasformazione di un elemento di pagina è rappresentata come una matrice 3 x 3:

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

I parametri utilizzati nella trasformazione sono:

translate_x I parametri di traduzione specificano la posizione (X,Y) dell'angolo in alto a sinistra dell'elemento della pagina, rispetto all'angolo superiore sinistro della pagina. Puoi specificare la posizione relativa utilizzando le unità di punti (pt) o le unità metriche inglesi (EMU).
translate_y
scale_x I parametri di scala controllano le dimensioni di un elemento della pagina quando viene eseguito il rendering. Si tratta di fattori di moltiplicazione senza unità; ad esempio, un valore scale_x pari a 1,5 ingrandisce la larghezza dell'elemento del 50%.
scale_y
shear_x Anche i parametri di taglio sono privi di unità e controllano l'inclinazione di un elemento di pagina. I parametri di scalabilità e taglio possono essere utilizzati insieme per ruotare un elemento di pagina.
shear_y

Puoi trovare molti esempi sul Web che mostrano come le matrici di trasformazione 2D influenzano il rendering degli oggetti grafici.

La matrice di trasformazione è relativa al gruppo o alla pagina contenitore dell'elemento. Ad esempio, se ruoti un gruppo che contiene un rettangolo, i valori del campo transform del gruppo riflettono la rotazione, al contrario dei valori del campo transform del rettangolo.

Calcolo delle dimensioni visive in corso...

Per determinare le dimensioni visive (visualizzate) di un elemento di pagina, devi considerare insieme le proprietà di dimensione e trasformazione. Non puoi determinare quale dei due elementi della pagina è visivamente più grande solo confrontando le proprietà delle dimensioni: devi mappare i confini dell'elemento utilizzando la matrice di trasformazione e calcolare una dimensione visualizzata.

Mappatura di un punto

Per mappare un punto specifico utilizzando la matrice di trasformazione, converti il punto (x, y) in un vettore [x, y, 1], quindi esegui la moltiplicazione delle matrici. Considera la mappatura di un punto p:

\[p' = Ap\]

In questo modo:

$$\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}$$

Pertanto le coordinate del nuovo punto p' sono:

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

Calcolo del confine

Per determinare le dimensioni visualizzate del riquadro di delimitazione di un elemento dopo una trasformazione tagliata e scalata, utilizza:

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

Per ulteriori informazioni su come utilizzare le trasformazioni affine per ottenere risultati specifici, consulta la guida Forme di dimensioni e posizione.

Limitazioni

Alcuni campi relativi a dimensioni e posizionamento non sono compatibili con alcuni tipi di elementi della pagina. La tabella riportata di seguito riassume la compatibilità di alcuni elementi di pagina con i campi relativi a dimensioni e posizionamento.

Campo Shape Video Tabella
Traduzioni
Scala No**
Tessera No No

** Per aggiornare le dimensioni di righe e colonne della tabella, utilizza UpdateTableRowPropertiesRequest e UpdateTableColumnPropertiesRequest.

Tutti i campi relativi a dimensioni e posizionamento potrebbero restituire risultati imprevisti se l'elemento della pagina ha il taglio. Tutte le limitazioni sono soggette a modifica. Per informazioni aggiornate, consulta l'API Presentazioni Google.