Z tego przewodnika dowiesz się, jak określać rozmiar i położenie elementów strony za pomocą przekształceń afinicznych w interfejsie Google Slides API. Wprowadzenie do przekształceń afinicznych znajdziesz w przewodniku koncepcyjnym Przekształcenia i elementy strony.
Przekształcanie elementów
Interfejs Slides API umożliwia zmianę położenia i skalowanie elementów na stronie. Aby to zrobić, najpierw określ, jaki rodzaj przekształcenia należy zastosować, a następnie
zastosuj to przekształcenie za pomocą
presentations.batchUpdate()
metody zawierającej co najmniej 1
UpdatePageElementTransformRequest
element.
Przekształcenia można wprowadzać za pomocą an
ApplyMode:
Przekształcenia
ABSOLUTEzastępują istniejącą macierz przekształcenia elementu. Wszystkie parametry pominięte w żądaniu aktualizacji przekształcenia są ustawiane na zero.Przekształcenia
RELATIVEsą mnożone przez istniejącą macierz przekształcenia elementu (kolejność mnożenia ma znaczenie):
Przekształcenia względne przesuwają lub skalują element strony z jego bieżącego położenia. Możesz na przykład przesunąć kształt o 100 punktów w lewo lub obrócić go o 40 stopni. Przekształcenia bezwzględne odrzucają dotychczasowe informacje o położeniu i skali. Możesz na przykład przesunąć kształt na środek strony lub zmienić jego rozmiar na określoną szerokość.
Złożone przekształcenia można zwykle wyrazić jako sekwencję prostszych przekształceń. Wstępne obliczenie przekształcenia – połączenie wielu przekształceń za pomocą mnożenia macierzy – może często zmniejszyć obciążenie.
W przypadku niektórych operacji musisz znać dotychczasowe parametry przekształcenia elementu. Jeśli nie masz tych wartości, możesz je pobrać za pomocą metody
presentations.pages.get().
Tłumaczenie
Przesunięcie to czynność polegająca na przeniesieniu elementu strony w nowe miejsce na tej samej stronie. Przesunięcia bezwzględne przenoszą element do określonego punktu, a przesunięcia względne przesuwają element o określoną odległość.
Podstawowa macierz przekształcenia przesunięcia ma postać:
Gdy używasz
UpdatePageElementTransformRequest
do przesunięcia elementu (bez zmiany jego rozmiaru, pochylenia lub orientacji), możesz użyć jednej z tych
AffineTransform:
// 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' } }
Skaluj
Skalowanie to czynność polegająca na rozciąganiu lub ściskaniu elementu wzdłuż osi X lub Y w celu zmiany jego rozmiaru. Podstawowa macierz przekształcenia skalowania ma postać:
Możesz użyć tej postaci macierzy bezpośrednio jako przekształcenia RELATIVE, aby zmienić rozmiar elementu, ale może to też wpłynąć na jego renderowane pochylenie i przesunięcie.
Aby przeskalować element bez wpływu na jego pochylenie lub przesunięcie, przejdź do jego
układu odniesienia.
Obrót
Przekształcenia obrotu obracają element strony wokół punktu za pomocą parametrów skalowania i pochylenia. Podstawowa macierz przekształcenia obrotu ma postać, w której kąt obrotu (w radianach) jest mierzony od osi X w kierunku przeciwnym do ruchu wskazówek zegara:
Podobnie jak w przypadku skalowania, możesz użyć tej postaci macierzy bezpośrednio jako przekształcenia RELATIVE, aby obrócić element, ale spowoduje to obrócenie elementu wokół początku strony. Aby obrócić element wokół jego środka lub innego punktu,
przejdź do jego układu odniesienia
frame.
Komentarze
Odbicie tworzy lustrzane odbicie elementu względem określonej linii lub osi. Podstawowa macierz przekształcenia odbicia względem osi X i Y ma postać:
Podobnie jak w przypadku skalowania, możesz użyć tej postaci macierzy bezpośrednio jako przekształcenia RELATIVE, aby odbić element, ale spowoduje to też jego przesunięcie. Aby
odbić element bez przesunięcia, przejdź do jego układu odniesienia.
Układy odniesienia elementów
Zastosowanie podstawowego przekształcenia skalowania, obrotu lub odbicia bezpośrednio do elementu strony powoduje przekształcenie w układzie odniesienia strony. Na przykład podstawowy obrót obraca element wokół początku strony (lewego górnego rogu). Możesz jednak pracować w układzie odniesienia elementu, np. aby obrócić element wokół jego punktu środkowego.
Aby przekształcić element w jego własnym układzie odniesienia, umieść go między 2 innymi przesunięciami: poprzedzającym przesunięciem T1, które przenosi środek elementu do początku strony, oraz następującym przesunięciem T2, które przenosi element z powrotem do jego pierwotnego położenia. Pełną operację można wyrazić jako iloczyn macierzy:
Możesz też przełączyć się na inne układy odniesienia, przesuwając do początku inne punkty. Te punkty stają się środkiem nowego układu odniesienia.
Każde z tych przekształceń można wykonać osobno jako sekwencyjne żądania przekształcenia RELATIVE. Najlepiej wstępnie obliczyć A'
powyżej za pomocą mnożenia macierzy i zastosować wynik jako pojedyncze ABSOLUTE
przekształcenie. Możesz też wstępnie obliczyć iloczyn T2 * B * T1 i zastosować go jako pojedyncze przekształcenie RELATIVE. Obie te metody są bardziej wydajne pod względem operacji API niż wysyłanie żądań przekształcenia osobno.
Ograniczenia
Niektóre pola rozmiaru i położenia są niezgodne z niektórymi typami elementów strony. W tabeli poniżej znajdziesz podsumowanie zgodności niektórych elementów strony z polami rozmiaru i położenia:
| Pole | Kształt | Wideo | Tabela |
|---|---|---|---|
| Przesunięcie | ✔ | ✔ | ✔ |
| Skaluj | ✔ | ✔ | Nie** |
| Pochylenie | ✔ | Nie | Nie |
Aby zaktualizować wymiary wiersza i kolumny tabeli, użyj
UpdateTableRowPropertiesRequest
i
UpdateTableColumnPropertiesRequest.
Wszystkie pola rozmiaru i położenia mogą dawać nieoczekiwane wyniki, jeśli element strony jest pochylony. Wszystkie ograniczenia mogą ulec zmianie. Aktualne informacje znajdziesz w dokumentacji interfejsu Google Slides API.
Zmienione wartości
Podczas tworzenia elementu strony możesz określić rozmiar i przekształcenie, które zapewniają określony efekt wizualny. Interfejs Slides API może jednak zastąpić podane wartości innymi, które dają ten sam efekt wizualny. Ogólnie rzecz biorąc, jeśli zapiszesz rozmiar za pomocą interfejsu API, nie masz gwarancji, że otrzymasz ten sam rozmiar. Powinieneś jednak uzyskać te same wyniki, jeśli weźmiesz pod uwagę przekształcenie.