Bu kılavuzda, afin dönüşümleri kullanarak sayfa öğelerini nasıl boyutlandırdığınız ve konumlandıracağınız açıklanmaktadır. Afin dönüşümlere kavramsal bir giriş için Dönüşümler kavram kılavuzunu inceleyin.
Öğeleri dönüştürme
Slaytlar API'si, sayfadaki öğeleri yeniden konumlandırmanıza ve ölçeklendirmenize olanak tanır. Bunu yapmak için öncelikle ne tür bir dönüşümün uygulanması gerektiğini belirleyin, ardından bir veya daha fazla UpdatePageElementTransformRequest öğesi içeren presentations.batchUpdate yöntemini kullanarak bu dönüşümü uygulayın.
Dönüşümler, iki applyModes yönteminden biriyle yapılabilir:
ABSOLUTE
, öğenin mevcut dönüşüm matrisini değiştirir. Dönüşüm güncelleme isteğinden çıkardığınız tüm parametreler sıfır olarak ayarlanır.RELATIVE
dönüşümleri, öğenin mevcut dönüşüm matrisi ile çarılır (çarpma sırası önemlidir):
Göreli dönüşümler, sayfa öğesini şu anki konumundan taşır veya ölçeklendirir. Örneğin, bir şekli 100 nokta sola taşıma veya 40 derece döndürme. Mutlak dönüşümler, mevcut konum ve ölçek bilgilerini siler (örneğin, bir şekli sayfanın ortasına taşıma veya belirli bir genişliğe ölçeklendirme).
Karmaşık dönüşümler genellikle daha basit dönüşümler dizisi olarak ifade edilebilir. Bir dönüşümün önceden hesaplanması, matris çarpımından yararlanarak birden fazla dönüşümün birleştirilmesi) genellikle ek yükü azaltabilir.
Bazı işlemler için bir öğenin mevcut dönüşüm parametrelerinin ne olduğunu bilmeniz gerekir. Bu değerlere sahip değilseniz presentations.pages.get isteğiyle bunları alabilirsiniz.
Çeviri
Çeviri, bir sayfa öğesini aynı sayfada yeni bir konuma taşıma işlemidir. Mutlak çeviriler öğeyi belirli bir noktaya taşırken göreceli çeviriler öğeyi belirli bir mesafeye taşır.
Temel bir çeviri dönüşüm matrisi şu biçimdedir:
Bir öğeyi çevirmek için (boyutunu, kaymasını veya yönünü değiştirmeden) UpdatePageElementTransformRequest öğesini kullandığınızda aşağıdaki AffineTransform yapılarından birini kullanabilirsiniz:
// 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' } }
Ölçeklendirme
Ölçeklendirme, bir öğenin boyutunu değiştirmek için X ve/veya Y boyutu boyunca uzatılması ya da sıkıştırılması işlemidir. Temel ölçeklendirme dönüşüm matrisi şu biçimdedir:
Bu matris formunu, bir öğeyi yeniden boyutlandırmak için doğrudan bir RELATIVE
dönüşümü olarak kullanabilirsiniz ancak bu, öğenin oluşturulan kayma ve çevirisini de etkileyebilir.
Öğeyi kayma veya hareket ettirmeyi etkilemeden ölçeklendirmek için referans çerçevesine kaydırın.
Döndürme
Rotasyon, ölçeklendirme ve kesme parametrelerini kullanarak bir sayfa öğesini bir noktanın etrafında döndürür. Temel döndürme dönüşüm matrisi aşağıdaki biçimdedir. Bu biçimde, saat yönünün tersine hareket eden X eksenine göre dönüş açısı (radyan cinsinden) ölçülür:
Ölçeklendirmede olduğu gibi, bu matris formunu bir öğeyi döndürmek için doğrudan RELATIVE
dönüşümü olarak kullanabilirsiniz ancak bu, öğenin sayfanın kaynağı hakkında döndürülmesine neden olur. Öğeyi merkezi veya farklı bir nokta etrafında döndürmek için ilgili referans çerçevesine gidin.
Yansıma
Yansıtma, bir öğeyi belirli bir çizgi veya eksen boyunca yansıtır. Temel X ve y ekseni yansıma dönüşüm matrisi aşağıdaki şekillerdedir:
Ölçeklendirmede olduğu gibi, bu matris formunu bir öğeyi yansıtmak için doğrudan RELATIVE
dönüşümü olarak kullanabilirsiniz ancak bu, öğenin de çevrilmesine neden olur. Öğeyi herhangi bir çeviri olmadan yansıtmak için referans çerçevesine kaydırın.
Öğe referans çerçeveleri
Doğrudan bir sayfa öğesine temel ölçek, yansıtma veya döndürme dönüşümü uygulandığında sayfanın referans çerçevesinde bir dönüşüm oluşturulur. Örneğin, temel bir döndürme, öğeyi sayfanın kaynağıyla (sol üst köşe) ilgili olarak döndürür. Bununla birlikte, örneğin bir öğeyi merkez noktası çevresinde döndürmek için öğenin referans çerçevesinde işlem yapabilirsiniz.
Bir öğeyi kendi referans çerçevesi içinde dönüştürmek için iki çevirinin daha içine alın: öğe merkezini sayfa kaynağına taşıyan bir önceki çeviri T1
ve öğeyi tekrar orijinal konumuna taşıyan sonraki çeviri T2
. Tam işlem, matris çarpımı olarak ifade edilebilir:
Bunun yerine farklı noktaları kaynağa çevirerek diğer referans çerçevelerine de geçebilirsiniz. Bu noktalar yeni referans çerçevesinin merkezindedir.
Bu dönüşümlerin her birini sıralı RELATIVE
dönüşüm istekleri olarak tek tek gerçekleştirmek mümkündür. İdeal olarak, yukarıdaki A'
için matris çarpımları yapmanız ve sonucu tek bir ABSOLUTE
dönüşümü olarak uygulamanız gerekir. Alternatif olarak, T2 * B * T1
ürününü önceden hesaplayın ve tek bir RELATIVE
dönüşümü olarak uygulayın. Bunların ikisi de API işlemleri açısından daha verimlidir ve ardından dönüşüm isteklerini ayrı ayrı gönderir.
Sınırlamalar
Bazı boyutlandırma ve konumlandırma alanları bazı sayfa öğesi türleriyle uyumsuzdur. Aşağıdaki tabloda, belirli sayfa öğelerinin boyutlandırma ve konumlandırma alanlarıyla uyumluluğu özetlenmiştir.
Alan | Şekil | Video | Tablo |
---|---|---|---|
Translation | ✔ | ✔ | ✔ |
Scale | ✔ | ✔ | Hayır** |
Kayma | ✔ | Hayır | Hayır |
** Tablo satır ve sütun boyutlarını güncellemek için UpdateTableRowPropertiesRequest
ve UpdateTableColumnPropertiesRequest
öğelerini kullanın.
Sayfa öğesinde kesme varsa tüm boyutlandırma ve konumlandırma alanları beklenmedik sonuçlar verebilir. Tüm sınırlamalar değiştirilebilir. Güncel bilgiler için Google Slaytlar API'ye göz atın.
Slaytlar API, değerlerinizi yeniden düzenleyebilir
Bir sayfa öğesi oluşturduğunuzda, belirli bir görsel sonuç sağlayan bir boyut ve dönüşüm belirtebilirsiniz. Bununla birlikte API, sağladığınız değerleri aynı görsel görünümü sağlayan diğer değerlerle değiştirebilir. Genel olarak, API'yi kullanarak bir boyut yazarsanız aynı boyutta döndürüleceği garanti edilmez. Ancak dönüşümü hesaba katarsanız aynı sonuçları elde edersiniz.