変換とページ要素

このガイドでは、ページ要素の変換(移動、回転、スケーリング、シアー)に使用される基本コンセプトについて説明します。特に、基盤となるアフィン変換とそのオペレーションに焦点を当てます。

アフィン変換を使用して特定の結果を得る方法については、サイズと位置のシェイプ ガイドをご覧ください。

ページ要素の視覚的なサイズと位置は、size プロパティと transform プロパティで制御します。size は、作成するページ要素の理想的なサイズまたは組み込みサイズを表します。変換では、2 次元のアフィン変換行列を指定します。この行列は、ビルトイン サイズのオブジェクトを変換して最終的な外観を実現する方法を指定します。

アフィン変換でレンダリングされたシェイプの図

スライド UI でページ要素を選択し、調整ハンドルを使用してその視覚的なサイズを変更すると、実際には、この変換行列が更新されます。要素をページ上で移動したり回転したりすると、要素の変換行列も更新されます。

スライドの UI を使用して開始する

ページ要素の変換とサイズ変更に使用する行列演算は非常に強力ですが、最初は難しいかもしれません。このページのほとんどでは、これらの計算について説明します。ただし、次の方法で変換とサイズの仕様を簡素化できます。

  1. Slides の UI を使用してページ要素を作成する。
  2. スライドの UI を使用して、これらのページ要素を必要に応じて配置、スケーリングします。
  3. get メソッドを使用して、これらの要素のサイズと変換を読み取ります。

これで、始める準備は完了です。以降のガイドでは、ページ要素の操作に使用できる変換計算について詳しく説明します。

アフィン変換行列

2 次元アフィン変換行列は、要素のスケーリング、回転、シアー、反射、変換を制御するためにグラフィック ライブラリで一般的に使用されます。Slides API では、ページ要素の変換は 3x3 行列として表されます。

A=[scale_xshear_xtranslate_xshear_yscale_ytranslate_y001]

変換で使用されるパラメータは次のとおりです。

translate_x translate パラメータは、ページ要素の左上隅の位置(X、Y)をページの左上隅を基準として指定します。相対位置は、ポイント(pt)または英語のメートル単位(EMU)の単位を使用して指定します。
translate_y
scale_x スケール パラメータは、レンダリング時のページ要素のサイズを制御します。単位のない乗数です。たとえば、scale_x の値が 1.5 の場合、要素の幅は 50% 拡大されます。
scale_y
shear_x シアー パラメータも単位なしで、ページ要素の傾斜を制御します。スケール パラメータとシアー パラメータを組み合わせて使用すると、ページ要素を回転できます。
shear_y

2D 変換行列がグラフィック オブジェクトのレンダリングに与える影響を示す例は、ウェブ上に多数あります。

変換行列は、要素を含むグループまたはページを基準としています。たとえば、長方形を含むグループを回転すると、グループの transform フィールド値に回転が反映されますが、長方形の transform フィールド値には反映されません。

視覚的なサイズの計算

ページ要素の視覚的な(レンダリングされた)サイズを決定するには、size プロパティと transform プロパティの両方を考慮する必要があります。2 つのページ要素のサイズ プロパティを比較するだけでは、視覚的にどちらが大きいかを判断することはできません。変換行列を使用して要素の境界をマッピングし、レンダリングされたサイズを計算する必要があります。

ポイントのマッピング

変換行列を使用して特定の点をマッピングするには、点(x、y)をベクトル [x、y、1] に変換してから、行列乗算を実行します。ポイント p のマッピングについて考えてみましょう。

p=Ap

次のように変更されます。

[xy1]=[scale_xshear_xtranslate_xshear_yscale_ytranslate_y001][xy1]

したがって、新しい点 p' の座標は次のようになります。

x=(scale_x×x)+(shear_x×y)+translate_xy=(scale_y×y)+(shear_y×x)+translate_y

境界の計算

シアー変換とスケーリング変換後の要素の境界ボックスのレンダリング サイズを決定するには、次のコードを使用します。

width=(scale_x×width)+(shear_x×height)height=(scale_y×height)+(shear_y×width)

アフィン変換を使用して特定の結果を得る方法については、サイズと位置のシェイプ ガイドをご覧ください。

制限事項

サイズと配置のフィールドの中には、一部のタイプのページ要素と互換性がないフィールドがあります。次の表に、特定のページ要素とサイズと配置のフィールドの互換性を示します。

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

** テーブルの行と列のディメンションを更新するには、UpdateTableRowPropertiesRequestUpdateTableColumnPropertiesRequest を使用します。

ページ要素にシアーがある場合、サイズと配置のすべてのフィールドで予期しない結果が得られる可能性があります。制限事項は変更される可能性があります。最新情報については、Google Slides API をご覧ください。