Questa guida descrive come ridimensionare e posizionare gli elementi della pagina utilizzando l'affine e piccole trasformazioni. Per un'introduzione concettuale alle trasformazioni affine, consulta la guida ai concetti di trasformazione.
Trasformare gli elementi
L'API Presentazioni ti consente di riposizionare e ridimensionare gli elementi su una pagina. Per farlo, determinare prima il tipo di trasformazione da applicare e applicare e trasformerai utilizzando presentations.batchUpdate che contiene uno o più UpdatePageElementTransformRequest elementi.
Le trasformazioni possono essere effettuate in uno dei due applyModes:
ABSOLUTE
trasforma sostituisce la trasformazione esistente dell'elemento . Gli eventuali parametri omessi dalla richiesta di aggiornamento della trasformazione sono impostati su zero.Le trasformazioni
RELATIVE
vengono moltiplicate per l'elemento esistente dell'elemento matrice di trasformazione (l'ordine delle moltiplicazioni è importante):
Le trasformazioni relative spostano o ridimensionano l'elemento della pagina dalla posizione in cui si trova attualmente. ad esempio spostare una forma di 100 punti verso sinistra o ruotarla di 40 gradi. Le trasformazioni assolute ignorano le informazioni di posizione e scala esistenti; della ad esempio spostare una forma al centro della pagina o ridimensionarla e una larghezza specifica.
In genere, le trasformazioni complesse possono essere espresse come una sequenza di trasformazioni più semplici. Precalcolo di una trasformazione, combinando più trasformazioni utilizzando moltiplicazione della matrice: spesso possono ridurre i costi generali.
Per alcune operazioni, devi sapere quale trasformazione esistente di un elemento parametri. Se non hai questi valori, puoi recuperarli con una presentations.pages.get richiesta.
Traduzione
La traduzione è semplicemente l'azione di spostare un elemento di pagina in una nuova posizione la stessa pagina. Le traduzioni Absolute spostano l'elemento in un punto specifico mentre le traduzioni relative spostano l'elemento di una distanza specifica.
Una matrice di trasformazione di base della traduzione ha il seguente formato:
Quando utilizzi una richiesta UpdatePageElementTransformRequest tradurre un elemento (senza modificarne le dimensioni, il taglio o l'orientamento), puoi utilizzare uno dei seguenti AffineTransform strutture:
// Absolute translation: { 'transform': { 'scaleX': current scaleX value, 'scaleY': current scaleY value, 'shearX': current shearX value, 'shearY': current shearY value, 'translateX': X coordinate to move to, 'translateY': Y coordinate to move to, 'unit': 'EMU' // or 'PT' } } // Relative translation (scaling must also be provided to avoid a matrix multiplication error): { 'transform': { 'scaleX': 1, 'scaleY': 1, 'translateX': X coordinate to move by, 'translateY': Y coordinate to move by, 'unit': 'EMU' // or 'PT' } }
Scalabilità
La scalabilità è l'azione di allungare o comprimere un elemento lungo la X e/o Dimensione Y per modificarne le dimensioni. Una matrice di trasformazione di scalabilità di base ha il seguente formato:
Puoi utilizzare questo modulo matrice direttamente come una trasformazione RELATIVE
per ridimensionare un
ma questo può influire anche sul taglio e sulla traslazione visualizzati dell'elemento.
Per scalare l'elemento senza influenzarne il taglio o la traslazione, passa alla sua
un framework di riferimento.
Rotazione
La rotazione trasforma la rotazione di un elemento di pagina attorno a un punto, utilizzando le proporzioni e di taglio. La matrice di trasformazione della rotazione base ha il seguente formato: dove l'angolo di rotazione (in radianti) è misurato dall'asse X, spostandosi senso antiorario:
Come per la scalabilità, puoi utilizzare questa matrice direttamente come RELATIVE
trasforma per ruotare un elemento, che però ne comporta la rotazione
sull'origine della pagina. Per ruotare l'elemento rispetto al centro o a uno
punto diverso,
passa al frame di riferimento.
Riflessione
La riflessione riflette un elemento su una linea o un asse specifici. Le basi La matrice di trasformazione della riflessione degli assi x e y ha le seguenti forme:
Come per la scalabilità, puoi utilizzare questa matrice direttamente come RELATIVE
trasforma l'elemento in modo da riflettere un elemento, ma in questo modo
beh. Per riflettere l'elemento senza alcuna traduzione,
al suo frame di riferimento.
Frame di riferimento degli elementi
Applicazione di una scala di base, riflesso o la rotazione trasformata direttamente in una pagina produce una trasformazione nel frame di riferimento della pagina. Ad esempio: una rotazione di base fa ruotare l'elemento rispetto all'origine della pagina ( nell'angolo in alto a sinistra). Tuttavia, puoi operare nel sistema di riferimento della dell'elemento stesso, ad esempio per ruotare un elemento attorno al suo punto centrale.
Per trasformare un elemento all'interno del suo quadro di riferimento, racchiudilo tra due
altre traduzioni: una traduzione precedente T1
che sposta il centro dell'elemento
all'origine della pagina e una traduzione T2
successiva che sposta l'elemento
alla posizione originale. L'operazione completa può essere espressa come una matrice
prodotto:
Puoi anche passare ad altri sistemi di riferimento traducendo i vari punti all'origine. Questi punti diventano il centro del nuovo riferimento frame.
È possibile eseguire ciascuna di queste trasformazioni singolarmente
richieste di trasformazione RELATIVE
sequenziali. Idealmente, dovresti precalcolare
A'
in alto con moltiplicazioni matriciali e applica il risultato come un singolo
Trasformazione ABSOLUTE
. In alternativa, precalcola il prodotto T2 * B * T1
e applicarla come singola trasformazione RELATIVE
. Entrambe sono più efficienti,
in termini di operazioni API, quindi inviando le richieste di trasformazione singolarmente.
Limitazioni
Alcuni campi relativi a dimensioni e posizionamento non sono compatibili con alcuni tipi di pagina elementi. La tabella riportata di seguito riassume la compatibilità di alcuni elementi della pagina con i campi relativi alle dimensioni e al posizionamento.
Campo | Shape | Video | Tabella |
---|---|---|---|
Traduzioni | ✔ | ✔ | ✔ |
Scala | ✔ | ✔ | No** |
Taglio | ✔ | No | No |
** Per aggiornare le dimensioni di righe e colonne in una tabella, utilizza
UpdateTableRowPropertiesRequest
e
UpdateTableColumnPropertiesRequest
.
Tutti i campi relativi a dimensioni e posizionamento potrebbero restituire risultati imprevisti se l'elemento della pagina presenta un taglio. Tutte le limitazioni sono soggette a modifica. Per informazioni aggiornate, vedi API Presentazioni Google.
L'API Presentazioni potrebbe eseguire il refactoring dei valori
Quando crei un elemento di pagina, puoi specificare una dimensione e trasformarla fornire un determinato risultato visivo. Tuttavia, l'API potrebbe sostituire le informazioni che hai fornito con altri valori che presentano lo stesso aspetto visivo. In generale, se scrivi una dimensione utilizzando l'API, non è garantito che ti venga restituita dimensioni. Tuttavia, dovresti ottenere gli stessi risultati se utilizzi la trasformazione .