W tym przewodniku opisano rozmiar i pozycję elementów strony za pomocą afinansów przekształcenia. Wprowadzenie do transformacji afinacyjnej znajdziesz w przewodniku po zagadnieniach dotyczących przekształceń.
Przekształcanie elementów
Interfejs Prezentacji API umożliwia zmianę położenia i skalowanie elementów na stronie. Aby to zrobić: najpierw określ, jakiego rodzaju przekształcenie należy zastosować, a potem je zastosuj przekształcić za pomocą funkcji presentations.batchUpdate zawierające co najmniej jedną UpdatePageElementTransformRequest .
Przekształcenia można dokonać w jednym z dwóch applyModes:
Przekształcenia
ABSOLUTE
zastępują istniejące przekształcenie elementu lub macierz. Wszystkie parametry pominięte w żądaniu aktualizacji przekształcenia mają wartość zero.Przekształcenia
RELATIVE
są mnożone przez dotychczasowe elementy macierz przekształceń (kolejność mnożenia ma znaczenie):
Przekształcenia względne przesuwają lub skalują element strony z miejsca, w którym się obecnie znajduje. na przykład przesunięcie kształtu o 100 punktów w lewo lub obrócenie go o 40 stopni. Przekształcenia bezwzględne odrzucają istniejące informacje o pozycji i skali. w przypadku na przykład przesunięcie kształtu na środek strony lub skalowanie go o określonej szerokości.
Złożone przekształcenia można zwykle wyrazić jako sekwencję prostszych przekształceń. Wstępne obliczanie przekształcenia – łączenie wielu przekształceń za pomocą mnożenie macierzy – często pozwala zmniejszyć narzut.
W przypadku niektórych operacji musisz wiedzieć, jakie jest istniejące przekształcenie elementu . Jeśli nie masz tych wartości, możesz je pobrać za pomocą polecenia presentations.pages.get użytkownika.
Tłumaczenie
Tłumaczenie to po prostu przeniesienie elementu strony w nowe miejsce tę samą stronę. Tłumaczenia Absolute przenoszą element w określony punkt, a przesunięcia względne przesuwają element o określoną odległość.
Podstawowa macierz przekształceń translacji ma postać:
Gdy używasz żądania UpdatePageElementTransformRequest aby przesunąć element (bez zmiany jego rozmiaru, ścinania czy orientacji), mogą użyć jednego z następujących elementów AffineTransform struktury:
// 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' } }
Skalowanie
Skalowanie to działanie polegające na rozciąganiu lub ściśnięciu elementu wzdłuż osi X lub wymiar Y, aby zmienić jego rozmiar. Podstawowa macierz przekształceń skalowania ma postać:
Możesz użyć tego formularza macierzy bezpośrednio jako przekształcenia RELATIVE
, aby zmienić rozmiar
ale może też wpływać na renderowane ściskanie i przesunięcie elementu.
Aby skalować element bez wpływu na jego długość lub przesunięcie, zmień pozycję
ramki referencyjnej.
Obrót
Obrót przekształca obrót elementu strony wokół określonego punktu za pomocą skalowania i parametry ścinania. Podstawowa macierz przekształceń rotacji ma taką postać: gdzie kąt obrotu (w radianach) jest mierzony od osi X. w lewo:
Tak jak w przypadku skalowania, możesz użyć tej postaci macierzy bezpośrednio jako funkcji RELATIVE
„transform”, aby obrócić element, ale spowoduje to jego obrót
na temat pochodzenia strony. Aby obrócić element wokół jego środka lub
inny punkt.
przejściu do tego punktu odniesienia.
Komentarze
Odbicie lustrzane jest odbiciem lustrzanym elementu wzdłuż określonej linii lub osi. Podstawowe Macierz przekształcania odbicia na osi x i Y ma następujące formy:
Tak jak w przypadku skalowania, możesz użyć tej postaci macierzy bezpośrednio jako funkcji RELATIVE
„transform”, by odzwierciedlić element, ale powoduje to jego przetłumaczenie jako
cóż. Aby odzwierciedlić element bez tłumaczenia,
przesunięcie do jego ramki odniesienia.
Ramki referencyjne elementu
zastosować podstawową skalę, refleksja, obrót – przekształcanie bezpośrednio w stronę powoduje przekształcenie w ramce referencyjnej strony. Przykład: rotacja podstawowa powoduje rotację elementu związanego z początkiem strony (parametr w lewym górnym rogu). Możesz jednak działać w ramce referencyjnej np. aby obrócić element wokół jego punktu środkowego.
Aby przekształcić element w jego własnej ramce referencyjnej, umieść go między dwoma
inne tłumaczenia: poprzednie przesunięcie T1
, które przesuwa środek elementu
na początek strony oraz kolejne tłumaczenie T2
, które przenosi element
do pierwotnego położenia. Pełną operację można przedstawić w postaci macierzy
produkt:
Można również przejść na inne ramki referencyjne, tłumacząc różne punkty do punktu początkowego. Te punkty będą centralnym punktem odniesienia ramki.
Każdą z tych przekształceń można przeprowadzić z osobna, tak aby:
sekwencyjnych żądań przekształcenia RELATIVE
. Najlepiej jest wstępnie obliczyć
A'
powyżej z mnożeniami macierzy i zastosowanie wyniku jako pojedynczej wartości
ABSOLUTE
– przekształcenie. Możesz też wstępnie obliczyć usługę T2 * B * T1
i zastosuj je jako pojedyncze przekształcenie RELATIVE
. Oba te rozwiązania są skuteczniejsze,
w kontekście operacji interfejsu API, a potem wysyłać
żądania przekształcenia pojedynczo.
Ograniczenia
Niektóre pola rozmiaru i pozycjonowania są niezgodne z niektórymi typami stron . Tabela poniżej zawiera podsumowanie zgodności niektórych elementów strony z polami rozmiaru i pozycjonowania.
Pole | Kształt | Wideo | Tabela |
---|---|---|---|
Tłumaczenie | ✔ | ✔ | ✔ |
Skala | ✔ | ✔ | Nie** |
Ścięcie | ✔ | Nie | Nie |
** Aby zaktualizować wymiary wierszy i kolumn tabeli, należy użyć funkcji
UpdateTableRowPropertiesRequest
oraz
UpdateTableColumnPropertiesRequest
Jeśli w elemencie strony występuje obcięcie, wszystkie pola dotyczące rozmiaru i pozycjonowania mogą dawać nieoczekiwane wyniki. Wszystkie ograniczenia mogą ulec zmianie. Aktualne informacje znajdziesz na stronie Interfejs API Prezentacji Google.
Interfejs Prezentacji API może refaktoryzować wartości.
Przy tworzeniu elementu strony możesz określić rozmiar i przekształcenie, w celu uzyskania konkretnego wyniku wizualnego. Interfejs API może jednak zastąpić z innymi, które dają taki sam wygląd. Ogólnie, jeśli napiszesz rozmiar przy użyciu interfejsu API, nie ma gwarancji, że wynik będzie taki sam rozmiaru. Takie same rezultaty uzyskasz jednak, jeśli zastosujesz przekształcenie do koncie.