Transformationen und Seitenelemente

In diesem Leitfaden werden die zugrunde liegenden Konzepte beschrieben, die beim Transformieren (Verschieben, Drehen, Skalieren und Scheren) von Seitenelementen verwendet werden. Der Schwerpunkt liegt dabei insbesondere auf der zugrunde liegenden affine Transformation und ihren Vorgängen.

Weitere Informationen zur Verwendung von affinen Transformationen für bestimmte Ergebnisse finden Sie in der Anleitung zu Größen- und Positionsformen.

Die visuelle Größe und Position eines Seitenelements wird durch zwei Eigenschaften gesteuert: size und transform. Die Größe beschreibt die ideale oder integrierte Größe des erstellten Seitenelements. Die Transformation gibt eine zweidimensionale affine Transformationsmatrix an, die angibt, wie ein Objekt in seiner integrierten Größe transformiert wird, um sein endgültiges visuelles Erscheinungsbild zu erzielen.

Diagramm einer Form, die durch eine affine Transformation gerendert wird

Wenn Sie in der Benutzeroberfläche von Google Präsentationen ein Seitenelement auswählen und seine visuelle Größe mithilfe der Ziehpunkte ändern, aktualisieren Sie damit diese Transformationsmatrix. Wenn Sie das Element über die Seite verschieben oder drehen, wird auch die Transformationsmatrix des Elements aktualisiert.

Google Präsentationen-UI verwenden

Die Matrixarithmetik, mit der Sie Seitenelemente transformieren und deren Größe anpassen, ist sehr leistungsstark, kann aber erst einmal entmutigend sein. Diese Berechnungen werden in den meisten Fällen auf dieser Seite beschrieben. Sie können die Spezifikation von Transformationen und Größen jedoch mit dem folgenden Ansatz vereinfachen:

  1. Erstellen Sie Seitenelemente mithilfe der Benutzeroberfläche von Google Präsentationen.
  2. Skalieren Sie diese Seitenelemente wie gewünscht über die Benutzeroberfläche von Google Präsentationen.
  3. Größe und Transformation dieser Elemente mit der get-Methode lesen.

Das kann für den Einstieg ausreichen. Im weiteren Verlauf dieses Leitfadens werden Transformationsberechnungen erläutert, mit denen Sie Seitenelemente im Detail bearbeiten können.

Affine-Transformationsmatrizen

Zweidimensionale affine Transformationsmatrizen werden häufig von Grafikbibliotheken verwendet, um Skalierung, Drehung, Scherung, Reflexion und Übersetzung von Elementen zu steuern. In der Slides API wird die Transformation eines Seitenelements als 3x3-Matrix dargestellt:

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

Die in der Transformation verwendeten Parameter sind:

translate_x Die Translate-Parameter geben die Position (X,Y) der oberen linken Ecke des Seitenelements in Bezug auf die obere linke Ecke der Seite an. Sie geben die relative Position mithilfe von Einheiten entweder in Punkten (pt) oder in englischen Maßeinheiten (EMU) an.
translate_y
scale_x Mit den scale-Parametern wird gesteuert, wie groß ein Seitenelement beim Rendern ist. Dies sind Multiplikationsfaktoren ohne Einheit.Beispielsweise wird mit einem scale_x-Wert von 1, 5 die Breite des Elements um 50 % vergrößert.
scale_y
shear_x Die Scherparameter haben ebenfalls keine Einheit und steuern die Neigung eines Seitenelements. Die Parameter „Scale“ und „Scher“ können zusammen verwendet werden, um ein Seitenelement zu drehen.
shear_y

Im Internet finden Sie zahlreiche Beispiele, die zeigen, wie sich 2D-Transformationsmatrizen auf das grafische Objekt-Rendering auswirken.

Die Transformationsmatrix bezieht sich auf die Gruppe oder Seite, in der sich das Element befindet. Wenn Sie beispielsweise eine Gruppe drehen, die ein Rechteck enthält, spiegeln die transform-Feldwerte der Gruppe die Rotation wider, nicht aber die transform-Feldwerte des Rechtecks.

Visuelle Größe berechnen

Um die visuelle (gerenderte) Größe eines Seitenelements zu bestimmen, müssen Sie sowohl die Größe als auch die Transformationseigenschaften zusammen berücksichtigen. Sie können nicht ermitteln, welches der beiden Seitenelemente visuell größer ist, indem Sie einfach ihre Größeneigenschaften vergleichen: Sie müssen die Grenzen des Elements mithilfe der Transformationsmatrix zuordnen und eine gerenderte Größe berechnen.

Punkt zuordnen

Um einen bestimmten Punkt mithilfe der Transformationsmatrix zuzuordnen, wandeln Sie den Punkt (x, y) in einen Vektor [x, y, 1] um und führen dann die Matrixmultiplikation durch. Betrachten Sie die Zuordnung eines Punkts p:

\[p' = Ap\]

Daraus ergibt sich:

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

Daher lauten die Koordinaten des neuen Punkts p' wie folgt:

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

Grenze berechnen

Um die gerenderte Größe des Begrenzungsrahmens eines Elements nach einer Transformation, die schert und skaliert wird, zu bestimmen, verwenden Sie:

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

Weitere Informationen zur Verwendung von affinen Transformationen für bestimmte Ergebnisse finden Sie in der Anleitung zu Größen- und Positionsformen.

Beschränkungen

Einige Felder für die Größe und Positionierung sind mit einigen Arten von Seitenelementen nicht kompatibel. In der folgenden Tabelle ist die Kompatibilität bestimmter Seitenelemente mit Feldern für die Größe und Positionierung zusammengefasst.

Feld Form Video Tabelle
Übersetzung
Scale Nein**
Schere Nein Nein

** Verwenden Sie UpdateTableRowPropertiesRequest und UpdateTableColumnPropertiesRequest, um Dimensionen für Tabellenzeilen und -spalten zu aktualisieren.

Alle Felder für die Größe und Positionierung können unerwartete Ergebnisse liefern, wenn das Seitenelement Scherungen aufweist. Alle Einschränkungen können sich ändern. Aktuelle Informationen finden Sie unter Google Slides API.