本指南說明如何使用興趣相似目標對象轉換,調整頁面元素的大小和位置。如需仿射轉換的概念簡介,請參閱轉換概念指南。
轉換元素
簡報 API 可讓您重新調整頁面上元素的位置和比例。如要這麼做,請先判斷需要套用哪種轉換作業,然後使用包含一或多個 UpdatePageElementTransformRequest 元素的 presentations.batchUpdate 方法套用轉換。
您可以利用以下兩個 applyModes 之一進行轉換:
ABSOLUTE
轉換會「取代」元素現有的轉換矩陣。您在轉換更新要求中省略的所有參數都會設為零。RELATIVE
轉換會乘以元素現有的轉換矩陣 (乘法順序很重要):
相對轉換會從網頁元素目前的位置移動或縮放。例如,將形狀 100 指向左側,或將形狀旋轉 40 度。絕對轉換會捨棄現有位置和縮放資訊,例如將形狀移至頁面中央,或縮放為特定的寬度。
複雜的轉換通常可以由一系列較簡單的轉換表示。 預先計算轉換 (使用矩陣乘法合併多個轉換) 通常可以減輕負擔。
在某些作業中,您必須瞭解元素現有的轉換參數。如果您沒有這些值,可以使用 presentations.pages.get 要求擷取這些值。
翻譯
「翻譯」是指將頁面元素移至相同頁面新位置的動作。「絕對」平移可將元素移動到特定點,「相對」平移則會讓元素在特定距離移動。
基本的平移轉換矩陣格式如下:
當您使用 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 和/或 Y 維度延展或擠壓元素,藉此變更元素大小的動作。基本的縮放轉換矩陣格式如下:
您可以將此矩陣表單直接當做 RELATIVE
轉換來調整元素大小,但這也可能會影響元素算繪的堆積和轉譯。如要在不影響其建構或轉譯的情況下縮放元素,請切換至參照框架。
旋轉
旋轉轉換會使用縮放和剪耳參數,在特定點周圍旋轉頁面元素。基本旋轉轉換矩陣包含下列格式,其中旋轉角度 (以弧度為單位) 是從 X 軸測量,並逆時針移動:
與縮放一樣,您可以直接使用此矩陣表單做為 RELATIVE
轉換來旋轉元素,但這會導致元素根據頁面的來源旋轉。如要以中心點或其他點為基準旋轉元素,請移至該參考影格。
映射
「反映」指的是特定線條或軸上的元素。基本的 X 軸和 Y 軸反射轉換矩陣格式如下:
與縮放一樣,您可以直接使用此矩陣表單做為 RELATIVE
轉換來反映元素,但這也會造成元素轉譯。如要在沒有翻譯的情況下反映元素,請移至其參考框架。
元素參考框架
將基本的「縮放」、「反射」或旋轉轉換直接套用至頁面元素後,就會在網頁的參考頁框中產生轉換。舉例來說,基本旋轉功能會旋轉網頁來源 (左上角) 的元素。不過,您可以在元素本身的參考影格中操作,例如圍繞其中心點旋轉元素。
如要在其參考頁框中轉換元素,請將該元素置於另外兩個翻譯之間:上述的轉譯 T1
會將元素中心移至網頁來源,而下列轉譯 T2
可將元素移回其原始位置。完整運算可以表示為矩陣乘積:
您也可以將不同點轉譯為來源,藉此切換至其他參考框架。這些點會成為新參考頁框的中心。
這些轉換作業可以個別執行為序列 RELATIVE
轉換作業。在理想情況下,您應使用矩陣乘法預先計算上述 A'
,然後將結果套用為單一 ABSOLUTE
轉換。或者,您也可以預先計算 T2 * B * T1
產品,然後將其做為單一 RELATIVE
轉換來套用。以 API 作業來說,兩者的效率較高,然後再個別傳送轉換要求。
限制
部分大小和位置欄位與某些類型的頁面元素不相容。下表摘要列出特定頁面元素大小和位置欄位的相容性。
欄位 | 形狀 | 影片 | 資料表 |
---|---|---|---|
Translation | ✔ | ✔ | ✔ |
擴充規模 | ✔ | ✔ | 否** |
保護耳朵 | ✔ | 否 | 否 |
** 如要更新表格列和欄維度,請使用 UpdateTableRowPropertiesRequest
和 UpdateTableColumnPropertiesRequest
。
如果網頁元素含有分散效果,所有大小和位置欄位都可能造成非預期的結果。所有限制隨時可能變動。如需最新資訊,請參閱 Google 簡報 API。
deck API 可能會重構您的值
建立頁面元素時,您可以指定提供特定視覺結果的大小和轉換。不過,API 可能會將您提供的值替換為產生相同視覺外觀的其他值。一般來說,如果您使用 API 編寫大小,並不保證會傳回相同的大小。不過,如果將轉換納入考量,也會得到相同的結果。