Dönüşümler ve Sayfa Öğeleri

Bu kılavuzda, sayfa öğelerini dönüştürmek (yani taşıma, döndürme, ölçeklendirme ve kaydırma) için kullanılan temel kavramlar açıklanmaktadır. Özellikle temel doğrusal dönüşüm ve işlemleri üzerinde durulur.

Belirli sonuçlara ulaşmak için affine dönüşümlerin nasıl kullanılacağı hakkında daha fazla bilgi edinmek için Boyut ve Konum Şekilleri kılavuzunu inceleyin.

Bir sayfa öğesinin görsel boyutu ve konumu, size ve transform olmak üzere iki özellik tarafından kontrol edilir. Boyut, oluşturulmakta olan sayfa öğesinin ideal veya yerleşik boyutunu tanımlar. Dönüşüm, yerleşik boyutundaki bir nesnenin nihai görsel görünümüne ulaşması için nasıl dönüştürüleceğini belirten iki boyutlu bir doğrusal dönüşüm matrisi belirtir.

Bir affine dönüşümü aracılığıyla oluşturulan şeklin şeması

Slaytlar kullanıcı arayüzünde bir sayfa öğesini seçip ayar tutamaklarından yararlanarak görsel boyutunu değiştirdiğinizde aslında bu dönüştürme matrisini güncellemiş olursunuz. Öğeyi sayfa üzerinde hareket ettirmek veya döndürmek de öğenin dönüştürme matrisini günceller.

Başlamak için Slaytlar kullanıcı arayüzünü kullanma

Sayfa öğelerini dönüştürmek ve yeniden boyutlandırmak için kullandığınız matris aritmetiği çok güçlüdür ancak ilk başta göz korkutucu olabilir. Bu sayfanın büyük bir kısmı bu hesaplamaları açıklar. Ancak aşağıdaki yaklaşımı kullanarak dönüştürme ve boyut özelliklerini basitleştirebilirsiniz:

  1. Slaytlar kullanıcı arayüzünü kullanarak sayfa öğeleri oluşturun.
  2. Slaytlar kullanıcı arayüzünü kullanmaya devam ederek bu sayfa öğelerini istediğiniz şekilde konumlandırın ve ölçeklendirin.
  3. get yöntemini kullanarak bu öğelerin boyutunu ve dönüştürme işlemini okuyun.

Bu bilgiler başlangıç için yeterli olabilir. Bu kılavuzun geri kalanında, sayfa öğelerini değiştirmek için kullanabileceğiniz dönüştürme hesaplamaları ayrıntılı olarak açıklanmaktadır.

Doğrusal olmayan dönüşüm matrisleri

İki boyutlu doğrusal dönüşüm matrisleri, öğelerin ölçeğini, rotasyonunu, kaymasını, yansımasını ve aktarımını kontrol etmek için grafik kitaplıkları tarafından yaygın olarak kullanılır. Slaytlar API'sinde, sayfa öğesinin dönüşümü 3x3 matris olarak temsil edilir:

$$A=\begin{bmatrix} scale\_x & shear\_x & translate\_x\\ shear\_y & scale\_y & translate\_y\\ 0 & 0 & 1 \end{bmatrix}$$

Dönüşümde kullanılan parametreler şunlardır:

translate_x Çevirme parametreleri,sayfa öğesinin sol üst köşesinin sayfanın sol üst köşesine göre (X, Y) konumunu belirtir. Göreli konumu, nokta (pt) veya İngiliz metrik birimleri (EMU) birimleri ile belirtirsiniz.
translate_y
scale_x Ölçek parametreleri, bir sayfa öğesinin oluşturulurken ne kadar büyük olacağını kontrol eder. Bunlar birimsiz çarpma faktörleridir.Örneğin, 1,5 değerine sahip bir scale_x öğe, öğenin genişliğini %50 oranında büyütür.
scale_y
shear_x Kaydırma parametreleri de birimsizdir ve bir sayfa öğesinin eğimini kontrol eder. Ölçek ve kaydırma parametreleri, bir sayfa öğesini döndürmek için birlikte kullanılabilir.
shear_y

Web'de, 2D dönüşüm matrislerinin grafik nesne oluşturmayı nasıl etkilediğini gösteren birçok örnek bulabilirsiniz.

Dönüşüm matrisi, öğenin kapsayıcı grubuna veya sayfasına göredir. Örneğin, bir dikdörtgen içeren grubu döndürürseniz grubun transform alan değerleri döndürmeyi yansıtır ancak dikdörtgenin transform alan değerleri yansıtmaz.

Görsel boyutu hesaplama

Bir sayfa öğesinin görsel (oluşturulan) boyutunu belirlemek için hem boyut hem de dönüştürme özelliklerini birlikte dikkate almanız gerekir. İki sayfa öğesinden hangisinin görsel olarak daha büyük olduğunu yalnızca boyut özelliklerini karşılaştırarak belirleyemezsiniz: Dönüşüm matrisini kullanarak öğenin sınırlarını eşlemeniz ve oluşturulan boyutu hesaplamanız gerekir.

Bir noktayı eşleme

Dönüşüm matrisini kullanarak belirli bir noktayı eşlemek için (x, y) noktasını [x, y, 1] vektörüne dönüştürün ve ardından matris çarpımı yapın. p noktasının eşlenmesini düşünün:

\[p' = Ap\]

Bu durumda:

$$\begin{bmatrix} x'\\ y'\\ 1 \end{bmatrix} =\begin{bmatrix} scale\_x & shear\_x & translate\_x\\ shear\_y & scale\_y & translate\_y\\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x\\ y\\ 1 \end{bmatrix}$$

Bu nedenle, yeni noktanın p' koordinatları şöyledir:

$$x' = (scale\_x \times x) + (shear\_x \times y) + translate\_x\\ y' = (scale\_y \times y) + (shear\_y \times x) + translate\_y$$

Sınırı hesaplama

Eğilme ve ölçeklendirme yapan bir dönüştürme işleminden sonra bir öğenin sınır kutusunun oluşturulan boyutunu belirlemek için şunları kullanın:

$$width' = (scale\_x \times width) + (shear\_x \times height)\\ height' = (scale\_y \times height) + (shear\_y \times width)$$

Belirli sonuçlara ulaşmak için affine dönüşümlerin nasıl kullanılacağı hakkında daha fazla bilgi edinmek için Boyut ve Konum Şekilleri kılavuzunu inceleyin.

Sınırlamalar

Bazı boyutlandırma ve konumlandırma alanları, bazı sayfa öğesi türleriyle uyumlu değildir. 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**
Yanal kayma Hayır Hayır

** Tablo satır ve sütun boyutlarını güncellemek için UpdateTableRowPropertiesRequest ve UpdateTableColumnPropertiesRequest'yi kullanın.

Sayfa öğesinde kaydırma varsa tüm boyutlandırma ve konumlandırma alanları beklenmedik sonuçlar verebilir. Tüm sınırlamalar değişebilir. Güncel bilgiler için Google Slaytlar API başlıklı makaleyi inceleyin.