ページ要素のサイズと配置

このガイドでは、アフィンを使用してページ要素のサイズと配置を行う方法について説明します 学びますアフィン変換の概念については 変換のコンセプト ガイドをご覧ください。

要素の変換

スライド API を使用すると、ページ上の要素の位置やサイズを変更できます。そのためには、 適用する変換の種類を決定してから 使用して、 presentations.batchUpdate メソッドに 1 つ以上 UpdatePageElementTransformRequest あります。

変換は、次の 2 つのいずれかで実行できます。 applyModes:

  • ABSOLUTE 変換は、要素の既存の変換を置き換えます。 表します。変換更新リクエストから省略したパラメータは、 あります。

  • RELATIVE 変換は、要素の既存の値と乗算されます。 (乗算の順序が重要)

$$A' = BA$$

相対変換は、ページ要素を現在の場所から移動またはスケーリングします。 たとえば、シェイプを左に 100 ポイント移動したり、40 度回転したりします。 絶対変換は、既存の位置とスケールの情報を破棄します。 たとえば、シェイプをページの中央に移動したり、 指定します。

通常、複雑な変換は単純な変換のシーケンスとして表現できます。 変換の事前計算( オーバーヘッドを削減できることがよくあります。

オペレーションによっては、要素の既存の変換が何であるかを知っておく必要がある 定義できます。これらの値がない場合は、次のコマンドで取得できます。 presentations.pages.get リクエストできます。

翻訳

翻訳とは、単にページ要素を画面上の新しい位置に移動させること 表示されます。Absolute翻訳では要素を特定のポイントに移動します。 相対的翻訳では要素を特定の距離だけ移動します。

基本的な翻訳変換行列の形式は次のとおりです。

$$T=\begin{bmatrix} 1 & 0 & translate\_x\\ 0 & 1 & translate\_y\\ 0 & 0 & 1 \end{bmatrix}$$

UpdatePageElementTransformRequest を使用する場合 要素を(サイズ、傾斜、向きを変えずに)平行移動するには、 次のいずれかを使用できます 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'
  }
}

スケーリング

スケーリングとは、X 軸または X 軸に沿って要素を伸縮させたり、 サイズを変更します。基本的なスケーリング変換行列の形式は次のとおりです。

$$S=\begin{bmatrix} scale\_x & 0 & 0\\ 0 & scale\_y & 0\\ 0 & 0 & 1 \end{bmatrix}$$

この行列形式を、サイズを変更するための RELATIVE 変換として直接使用できます。 これは要素のレンダリングされた傾斜と移動にも影響します。 傾斜や移動に影響を与えずに要素を拡大縮小するには、 参照フレーム

回転

回転変換では、スケーリングと せん断パラメータ。基本的な回転変換行列の形式は次のとおりです。 回転角(ラジアン)は X 軸を基準として測定され、 反時計回り:

$$R=\begin{bmatrix} cos(\theta) & sin(\theta) & 0\\ -sin(\theta) & cos(\theta) & 0\\ 0 & 0 & 1 \end{bmatrix}$$

スケーリングと同様に、この行列形式を RELATIVE として直接使用できます。 要素が回転しますが、その場合、要素が回転します。 ページのオリジンに関する情報。中心または 異なる点です。 その基準フレームにシフトします。

リフレクション

鏡像は、特定の線または軸に沿って要素をミラーリングします。基本 x 軸と y 軸の反射変換行列の形式は次のとおりです。

$$F_x=\begin{bmatrix} 1 & 0 & 0\\ 0 & -1 & 0\\ 0 & 0 & 1\\ \end{bmatrix}\qquad\qquad F_y=\begin{bmatrix} -1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 1\\ \end{bmatrix}$$

スケーリングと同様に、この行列形式を RELATIVE として直接使用できます。 要素は移動しますが 要素は平行移動になります あります翻訳せずに要素を反映するには、 シフトします

要素の基準フレーム

基本的な尺度を適用する リフレクション rotation 変換をページに直接変換する 要素がページの参照フレームで変換を生成します。たとえば 基本回転では、要素がページの原点( )。ただし、Terraform の参照フレームで操作は たとえば、中心点を中心にして要素を回転させる場合などです。

要素を自身の参照フレーム内で変換するには、2 つのフレームで囲みます その他の翻訳: 要素の中心を移動する前の翻訳 T1 ページのオリジンに移動し、次の翻訳 T2 で要素を移動します。 元の位置に戻せます完全な演算は行列として表現できる product:

$$A' = T2 \times B \times T1 \times A$$

異なる点を変換して、他の基準系に切り替えることもできます オリジンにルーティングしますこれらのポイントが、新しいリファレンス クリックします。

これらの変換は、それぞれ個別に 連続した RELATIVE 変換リクエスト。事前にコンピューティング能力を A'(上記の行列を乗算して)に変換し、結果を単一の ABSOLUTE 変換。または、T2 * B * T1 の積を事前に計算する それを単一の RELATIVE 変換として適用します。どちらも効率的です 変換リクエストを個別に送信できます

制限事項

一部のサイズフィールドと配置フィールドは、一部のタイプのページに対応していません あります。次の表は、特定のページ要素とサイズフィールドと配置フィールドの互換性をまとめたものです。

フィールド 図形 動画
翻訳
スケーリング ×**
シェア いいえ いいえ

** 表の行と列のディメンションを更新するには、 UpdateTableRowPropertiesRequest および UpdateTableColumnPropertiesRequest

ページ要素に傾斜がある場合、すべてのサイズ設定と配置フィールドで予期しない結果が生じる可能性があります。すべての制限は変更される場合があります。最新の情報については、Google スライド API をご覧ください。

スライド API は値をリファクタリングする場合があります。

ページ要素を作成する際は、ページ要素のサイズと変換を 結果を提示します。ただし、API は提供された 値を比較することで、見た目は同じになる場合があります。一般的に API を使用してサイズを記述した場合、同じ値が返される保証はありません。 指定します。ただし、この変換を あります。