Dönüşüm işlemleri

Google Slaytlar API'si, bir görselin konumunu, boyutunu ve yönünü PageElement (metin kutuları, resimler, tablolar ve temel şekiller) kullanırken satırlarınız aynı kalırken noktaları ve paralel çizgileri korur. Bunlar afin olarak bilinir. dönüşümleri hakkında daha fazla bilgi edinin. Buradaki örneklerde, bazı yaygın sayfa öğesi dönüşümleri işlemleri presentations.batchUpdate yöntemidir.

Bu örneklerde aşağıdaki değişkenler kullanılmaktadır:

Bu örnekler, dilden bağımsız olarak HTTP istekleri olarak sunulur. Öğrenmek için Google API kullanılarak farklı dillerde toplu güncelleme uygulama Şekil ekleme ve metin.

Ok şekli örneği

Aşağıdaki örnekler için örnek bir ok şekli sayfası olduğunu varsayalım öğesi ( presentations.pages.get yöntem isteği) için geçerlidir. Örnek şeklindeki şekil, unit EMU (İngilizce Metrik Birimi) ve pt (punto) değerini alır.

{
  "objectId": PAGE_ELEMENT_ID,
  "size": {
    "width": {
      "magnitude": 3000000,
      "unit": "EMU"
    },
    "height": {
      "magnitude": 3000000,
      "unit": "EMU"
    }
  },
  "transform": {
    "scaleX": 0.3,
    "scaleY": 0.12,
    "shearX": 0,
    "shearY": 0,
    "translateX": 2000000,
    "translateY":  550000,
    "unit": "EMU"
  },
  "shape": {
    "shapeType": "RIGHT_ARROW"
  }
}

Bir öğeyi başka bir öğeyle hizalama

Aşağıdakiler presentations.batchUpdate kod örneği, CreateShapeRequest yöntemini kullanarak, resim, konum ve zaman çizelgesiyle hizalanan doğru konumlarda yeni şekiller örnek ok şeklini kullanın. Her iki durumda da X ve Y yeni şeklin sol üst köşesinin koordinatları hesaplanmalıdır.

İlk istek, sola hizalanan 100x50 pt dikdörtgen oluşturur ok şeklinin kenarlığı, ancak 50 pt (50 * 12.700 = 635.000 EMU) konumlandırılmıştır tıklayın. Yeni dikdörtgenin X koordinatı sol kenarlığını hizalaması için okun X koordinatıyla aynı işlevi görür. Y koordinatı, okun Y koordinatı artı 50 punto ile aynıdır, çünkü mesafe, okun üstünden ölçülür. Dikdörtgenin koordinatları bu nedenle:

x" = 2000000 EMU
y" = 550000 + (50 * 12700) = 1185000 EMU

İkinci istek, aynı yatay daireye sahip 40 pt geniş bir daire oluşturuyor merkez çizgisi örnek ok olarak gösterilir, ancak 100 pt (1.270.000 EMU) sağ kenarının sağına dokunun. Çemberin X koordinatı, dairenin X koordinatı okun X koordinatı, ok genişliği ve 100 pt. Orta çizgiyi zorlama için, yeni dairenin hizalanmasında, her iki dairenin de yüksekliğini ok ve daire. Çemberin Y koordinatı, okun Y koordinatıdır artı yarım ok yüksekliği ve daire yüksekliğinin yarısı. Her iki durumda da, ok ile ilişkili ölçeklendirme faktörlerini de hesaba katmak gerekir, çünkü okun oluşturulan genişliğini ve yüksekliğini etkiler. Çevrenin Dolayısıyla koordinatlar şunlardır:

x = 2000000 + (0.3 * 3000000) + (100 * 12700) = 4170000 EMU
y = 550000 + (0.5 * 0.12 * 3000000) - (0.5 * 40 * 12700) = 476000 EMU

Aşağıda, bir öğeyi diğeriyle hizalamak için kullanılan istek protokolü verilmiştir:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "createShape": {
        "shapeType": "RECTANGLE",
        "elementProperties": {
          "pageObjectId": PAGE_ID,
          "size": {
            "width": {
              "magnitude": 100,
              "unit": "PT"
            },
            "height": {
              "magnitude": 50,
              "unit": "PT"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 2000000,
            "translateY": 1185000,
            "unit": "EMU"
          }
        }
      }
    },
    {
      "createShape": {
        "shapeType": "ELLIPSE",
        "elementProperties": {
          "pageObjectId": PAGE_ID,
          "size": {
            "width": {
              "magnitude": 40,
              "unit": "PT"
            },
            "height": {
              "magnitude": 40,
              "unit": "PT"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 4170000,
            "translateY":  476000,
            "unit": "EMU"
          }
        }
      }
    }
  ]
}

Öğeleri taşıma

Aşağıdakiler presentations.batchUpdate kod örneği, UpdatePageElementTransformRequest örnek ok şekli sayfa öğesini çevirmek için kullanılan yöntem iki yolu vardır.

Gruptaki ilk istek, oku (X,Y) = (2000000, 150000) öğesine taşır EMU koordinatı (mutlak çeviri kullanılır) applyMode) seçin. Gruptaki ikinci istek, oku oradan hareket ettiriyor. Bu sefer 40.000 EMU sağa ve yukarı doğru 35.000 EMU'dur (göreceli bir çeviri applyMode kullanarak). Kullanılan convertation1 matrisleri Böylece, öğenin boyutu ve yönünün değiştirilmesi önlenir.

Her iki istek de yürütüldükten sonra okun sol üst köşesi (X,Y) noktasında kalır. = (2040000, 115000) EMU koordinatı.

Aşağıda, bir öğeyi taşımak için kullanılacak istek protokolü verilmiştir:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "updatePageElementTransform": {
        "objectId": PAGE_ELEMENT_ID,
        "applyMode": "ABSOLUTE",
        "transform": {
            "scaleX": 0.3,
            "scaleY": 0.12,
            "translateX": 2000000,
            "translateY":  150000,
            "unit": "EMU"
        }
      }
    },
    {
      "updatePageElementTransform": {
        "objectId": PAGE_ELEMENT_ID,
        "applyMode": "RELATIVE",
        "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX":  40000,
            "translateY": -35000,
            "unit": "EMU"
        }
      }
    }
  ]
}

Bir elementi yansıtın

Aşağıdakiler presentations.batchUpdate kod örneği, UpdatePageElementTransformRequest örnek ok şekli sayfa öğesini yansıtma yöntemi sayfadaki konumunu değiştirmeden veya ortası boyunca yatay yardımcı olur.

Bu, fonksiyonlar için temel yansıma dönüşümünün referansta çerçeve. Daha net ifadelerle referans kare kayması ve yansıması, UpdatePageElementTransformRequest yöntemi, Ancak bu dönüşüm sonucunda ortaya çıkacak ürünleri önceden hesaplamak, ve ardından bu çarpımı tek bir istek olarak uygular.

Çeviri dönüşümleri için ok şeklinin merkezi başlangıç noktasına doğru veya orijinden taşınır. Parametre değerleri netlik için hesaplamalar olarak ifade edilir.

Aşağıda, bir öğeyi yansıtan istek protokolü verilmiştir:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "updatePageElementTransform": {
        "objectId": PAGE_ELEMENT_ID,
        "applyMode": "RELATIVE",
        "transform": {
            "scaleX":  1,
            "scaleY":  1,
            "translateX": -2000000 - 0.5 * 0.3  * 3000000,
            "translateY":  -550000 - 0.5 * 0.12 * 3000000,
            "unit": "EMU"
        }
      }
    },
    {
      "updatePageElementTransform": {
        "objectId": PAGE_ELEMENT_ID,
        "applyMode": "RELATIVE",
        "transform": {
            "scaleX": -1,
            "scaleY":  1,
            "unit": "EMU"
        }
      }
    },
    {
      "updatePageElementTransform": {
        "objectId": PAGE_ELEMENT_ID,
        "applyMode": "RELATIVE",
        "transform": {
            "scaleX":  1,
            "scaleY":  1,
            "translateX":  2000000 + 0.5 * 0.3  * 3000000,
            "translateY":   550000 + 0.5 * 0.12 * 3000000,
            "unit": "EMU"
        }
      }
    }
  ]
}

Öğeleri yeniden boyutlandırma

Aşağıdakiler presentations.batchUpdate kod örneği, UpdatePageElementTransformRequest örnek ok şekli sayfa öğesini %50 olacak şekilde ölçeklendirme yöntemi daha geniş ve mevcut yüksekliğinin yalnızca% 80'ine sahip, okun ortasını koruyarak aynı konumda tutmak ve yönünü korumak önemlidir.

Bu, fonksiyonlar için temel ölçeklendirme dönüşümünün referansta çerçeve. Daha net ifadelerle referans kare kayması ve ölçeklendirmesi, UpdatePageElementTransformRequest yöntemi, Ancak bu dönüşüm sonucunda ortaya çıkacak ürünleri önceden hesaplamak, ve ardından bu çarpımı tek bir istek olarak uygular.

Çeviri dönüşümleri için ok şeklinin merkezi başlangıç noktasına doğru veya orijinden taşınır. Parametre değerleri netlik için hesaplamalar olarak ifade edilir.

Aşağıda, bir öğeyi yeniden boyutlandırmak için kullanılan istek protokolü verilmiştir:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "updatePageElementTransform": {
          "objectId": PAGE_ELEMENT_ID,
          "applyMode": "RELATIVE",
          "transform": {
              "scaleX":  1,
              "scaleY":  1,
              "translateX": -2000000 - 0.5 * 0.3  * 3000000,
              "translateY":  -550000 - 0.5 * 0.12 * 3000000,
              "unit": "EMU"
          }
      }
    },
    {
      "updatePageElementTransform": {
        "objectId": PAGE_ELEMENT_ID,
        "applyMode": "RELATIVE",
        "transform": {
            "scaleX": 1.5,
            "scaleY": 0.8,
            "unit": "EMU"
        }
      }
    },
    {
      "updatePageElementTransform": {
        "objectId": PAGE_ELEMENT_ID,
        "applyMode": "RELATIVE",
        "transform": {
            "scaleX":  1,
            "scaleY":  1,
            "translateX":  2000000 + 0.5 * 0.3  * 3000000,
            "translateY":   550000 + 0.5 * 0.12 * 3000000,
            "unit": "EMU"
        }
      }
    }
  ]
}

Bir öğeyi merkezi etrafında döndürme

Aşağıdakiler presentations.batchUpdate kod örneği, UpdatePageElementTransformRequest örnek ok şekli sayfa öğesini döndürme yöntemi 35 derece, saat yönünün tersine, okun merkezini aynı konumda tutarken boyutunu korumak yer alıyor.

Bu, bir temel rotasyon uygulama dönüşümünün referansta çerçeve. Daha net ifadelerle referans kare kayması ve döndürmesi, UpdatePageElementTransformRequest yöntemi, Ancak bu dönüşüm sonucunda ortaya çıkacak ürünleri önceden hesaplamak, yapıp bu sonucu tek bir istek olarak uygular.

Çeviri dönüşümleri için ok şeklinin merkezi başlangıç noktasına doğru veya orijinden taşınır. Parametre değerleri netlik için hesaplamalar olarak ifade edilir.

Aşağıda, bir öğeyi merkezi etrafında döndürmek için kullanılan istek protokolü verilmiştir:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "updatePageElementTransform": {
          "objectId": PAGE_ELEMENT_ID,
          "applyMode": "RELATIVE",
          "transform": {
              "scaleX":  1,
              "scaleY":  1,
              "translateX": -2000000 - 0.5 * 0.3  * 3000000,
              "translateY":  -550000 - 0.5 * 0.12 * 3000000,
              "unit": "EMU"
          }
      }
    },
    {
      "updatePageElementTransform": {
        "objectId": PAGE_ELEMENT_ID,
        "applyMode": "RELATIVE",
        "transform": {
            "scaleX":  cos(35 * (pi/180)),
            "scaleY":  cos(35 * (pi/180)),
            "shearX":  sin(35 * (pi/180)),
            "shearY": -sin(35 * (pi/180)),
            "unit": "EMU"
        }
      }
    },
    {
      "updatePageElementTransform": {
        "objectId": PAGE_ELEMENT_ID,
        "applyMode": "RELATIVE",
        "transform": {
            "scaleX":  1,
            "scaleY":  1,
            "translateX":  2000000 + 0.5 * 0.3  * 3000000,
            "translateY":   550000 + 0.5 * 0.12 * 3000000,
            "unit": "EMU"
        }
      }
    }
  ]
}