Reklamınızın konumunu ve konumunu değiştirmek için bir sayfa öğesidir:
- Boyut ve konum için alıcı ve belirleyici işlevlerini kullanma.
- Doğal boyutu korurken
getTransform()
vesetTransform()
işlevlerini kullanarak afin dönüşümünü manipüle etme.
Sayfa öğesi özelliklerini okuma
Şekilde gösterildiği gibi, boyut ve konum oluşturulan bir sayfa öğesinin sınırlama kutusu:
- Sol ve Üst: Sayfanın sol üst köşesinden
döndürmeyen sınırlayıcı kutunun sol üst köşesinde görünür.
getLeft()
vegetTop()
özelliklerini kullanarak değerleri okumalısınız. - Genişlik ve Yükseklik: Döndürülmemiş sınırlama kutusunun genişliği ve yüksekliği.
Değerleri okumak için
getWidth()
vegetHeight()
öğelerini kullanın. - Döndürme: etrafındaki dikey çizgiye göre saat yönünde döndürme
ortasını çizin. Değeri okumak için
getRotation()
kullanın.
Tüm uzunluklar puan (pt) cinsinden ölçülür. Döndürme derece olarak ölçülür (°).
Sayfa öğesi özelliklerini ayarlama
Bir sayfa öğesini oluştururken boyutunu ve konumunu ayarlamak için
insertShape()
gibi bir ekleme yöntemi. Mevcut bir şekil için
boyut, konum ve rotasyon. bir öğenin ölçeklendirmesini
kenarlarından biri boyunca yansıtmak için yeniden boyutlandırabilirsiniz.
Oluşturulduğunda
Bir sayfa öğesi oluştururken konum ve boyut bilgilerini sağlayabilirsiniz.
var slide = SlidesApp.getActivePresentation().getSlides()[0];
var shape = slide.insertShape(SlidesApp.ShapeType.TEXT_BOX, 100, 200, 300, 60);
Logger.log('Left: ' + shape.getLeft() + 'pt; Top: '
+ shape.getTop() + 'pt; Width: '
+ shape.getWidth() + 'pt; Height: '
+ shape.getHeight() + 'pt; Rotation: '
+ shape.getRotation() + ' degrees.');
Yukarıdaki komut dosyası, etkin sununun ilk slaytında bir şekil oluşturuyor belirtilen konum ve boyutla çalışır, konum ve boyut bilgilerini okur şeklidir. Beklenen günlük:
Left: 100pt; Top: 200pt; Width: 300pt; Height: 60pt; Rotation: 0 degrees.
Boyut, konum ve döndürme
Bir sayfa öğesini oluşturduktan sonra boyutunu ve konumunu güncelleyebilirsiniz:
- Reklamın sol üst köşesinin konumunu ayarlamak için
setLeft()
vesetTop()
tuşlarını kullanın. döndürülmemiş sınırlayıcı kutusu. - Sınırlamanın oluşturulan genişliğini ve yüksekliğini ayarlamak için
setWidth()
vesetHeight()
öğelerini kullanın seçin. - Çevresindeki sınırlayıcı kutunun saat yönünde dönüşünü ayarlamak için
setRotation()
işlevini kullanın yardım etmek istiyorum.
Aşağıdaki komut dosyası etkin sununun ilk slaytında bir şekil oluşturur: konumunu, boyutunu ve rotasyonunu güncellemek için belirleyicileri kullanır ve konumu okur ve şeklin boyut bilgilerini içerir.
var slide = SlidesApp.getActivePresentation().getSlides()[0];
var shape = slide.insertShape(SlidesApp.ShapeType.RECTANGLE);
shape.setLeft(100).setTop(200).setWidth(50).setHeight(60).setRotation(90);
Logger.log('Left: ' + shape.getLeft()
+ 'pt; Top: ' + shape.getTop()
+ 'pt; Width: ' + shape.getWidth()
+ 'pt; Height: ' + shape.getHeight()
+ 'pt; Rotation: ' + shape.getRotation() + '\u00B0.');
Bu komut dosyasından beklenen günlük çıkışı aşağıda gösterilmiştir:
Left: 100pt; Top: 200pt; Width: 50pt; Height: 60pt; Rotation: 90°.
Boyut, konum ve rotasyon belirleyicileri herhangi bir sırada veya kombinasyonda kullanılabilir. Yukarıdaki üçüncü satırı aşağıdaki komut dosyasıyla değiştirdiğinizde aynı sonucu elde edersiniz:
shape.setWidth(55);
shape.setRotation(90).setHeight(60).setLeft(100);
shape.setWidth(50).setTop(200);
Ölçeklendirme
Şeklin boyutunu ayarlamak için yukarıdaki setWidth()
ve setHeight()
kullanmak yerine
mutlak bir değere dönüştürülebilirse, scaleWidth()
ve scaleHeight()
, uzatmak veya
bir sayfa öğesini göreceli ölçeklendirme faktörüyle sıkıştırmak.
shape.scaleHeight(0.5).scaleWidth(2);
Aşağıdaki şekilde, yukarıdaki kodun 45° döndürülmüş kare bir şekil üzerinde nasıl çalıştığı gösterilmektedir. Sınırlayıcı kutunun sol üst köşesinin ölçeklendirme sırasında sabit olduğuna dikkat edin.
Kenar boyunca yansıma
scaleWidth()
ve scaleHeight()
ifadelerindeki bağımsız değişken negatif olabilir. Böylece şunları yapabilirler:
bir sayfa öğesini yatay veya dikey olarak çevirmek için kullanılır.
shape.scaleWidth(-1); // Flip horizontally along the left edge of the bounding box.
shape.scaleHeight(-1); // Flip vertically along the top edge of the bounding box.
Aşağıdaki şekilde, yukarıdaki kodun 45° döndürülmüş bir şekil üzerinde nasıl çalıştığı gösterilmektedir. Lütfen sayfa öğesi, sınırlayıcı kutusunun kenarlarından biri boyunca çevrilmiş ancak merkezi bir nokta.
Çizgi döndürme
Diğer sayfa öğelerinde olduğu gibi, bir çizginin dönüşü de
çizgiyle değil, sınırlayıcı kutusunun dönüşünü dikkate alır. Şununla bir satır oluşturduğunuzda:
belirtildiğinde, dönüş her zaman 0° olur. Sürükleme
Google Slaytlar kullanıcı arayüzündeki çizginin uç noktaları dikey açısını da değiştiriyor
sınırlayıcı kutusunun boyutu ve konumu gibi, ancak değişmeyen
döndürülmesini sağlıyor. setRotation()
kullanılması, çizginin sınırlayıcı kutusunu döndürür.
dikey açısını etkili bir şekilde değiştiriyor. Yani iki satır
aynı görsel dikey açıya, ancak farklı sınırlayıcı kutulara ve
farklı boyut, konum ve rotasyon değerleri sunar.
Sınırlamalar
Bazı boyutlandırma ve konumlandırma yöntemleri bazı sayfa türleriyle uyumsuz. öğeler. Aşağıdaki tabloda her tür sayfa öğesi için geçerlidir.
Yöntemler | Şekil | Video | Tablo |
---|---|---|---|
getHeight(), getWidth() | ✔ | ✔ | HAYIR (boş değer döndürür) |
setHeight(), setWidth() | ✔ | ✔ | HAYIR |
setRotation() | ✔ | HAYIR | HAYIR |
scaleHeight(), scaleWidth() | ✔ | ✔ | HAYIR |
Sayfa, tüm boyutlandırma ve yerleştirme yöntemleri için beklenmedik sonuçlar verebilir. kesmeye sahip. Tüm sınırlamalar değiştirilebilir. Referansı kontrol et: güncel bilgiler.
Afin dönüşümleri kullanma
Gelişmiş kontrol için bir sayfa öğesinin boyutu ve konumu da doğal (yerel) boyutu ve afin dönüşüm aracılığıyla hesaplanıp ayarlanır.
Google Apps Komut Dosyası, afin dönüşümü Google Slaytlar API'si ile kullanmak için benzer bir arayüz sunar.
- Okumak için bu
makale
afin dönüşüm kavramları ve oluşturulan boyutun doğal boyutlardan nasıl çıkarılacağı
(yerel) boyut ve dönüşüm sağlar. Apps Komut Dosyası'nda
- Sayfanın yerel boyutu için
getInherentWidth()
vegetInherentHeight()
öğeler; - Sayfa öğelerinin afin dönüşümü için
getTransform()
.
- Sayfanın yerel boyutu için
- Yazmak için,
makalenin
elde etmek için afin dönüşüm kullanarak sayfa öğelerini nasıl boyutlandıracağınızı ve konumlandıracağınızı
yansıtma gibi özellikleri görebilirsiniz. Apps Komut Dosyası'nda,
- Sayfa öğelerinin afin dönüşümünü ayarlamak için
setTransform()
( MUTLAK modu); preconcatenateTransform()
sayfa öğelerinin mevcut dönüşümünü (RELATIVE moduna benzer)
- Sayfa öğelerinin afin dönüşümünü ayarlamak için
Aşağıdaki komut dosyası bir şekil oluşturur, dönüşümünü ayarlar, doğal boyutunu okur, ve afin dönüşümünü okur.
var slide = SlidesApp.getActivePresentation().getSlides()[0];
var shape = slide.insertShape(SlidesApp.ShapeType.RECTANGLE);
shape.setTransform(SlidesApp.newAffineTransformBuilder()
.setScaleX(2)
.setScaleY(1)
.setTranslateX(100)
.setTranslateY(200)
.build());
Logger.log('Inherent width: ' + shape.getInherentWidth()
+ 'pt; Inherent height: '
+ shape.getInherentHeight() + 'pt.');
Bu komut dosyasından beklenen günlük çıkışı aşağıda gösterilmiştir:
Inherent width: 236.2pt; Inherent height: 236.2pt.
Ortaya çıkan şekil, aşağıdaki dönüştürmeye, boyut ve konuma sahip olur:
AffineTransform{scaleX=2.0, scaleY=1.0, shearX=0.0, shearY=0.0, translateX=100.0, translateY=200.0}
Left: 100pt; Top: 200pt; Width: 472.4pt; Height: 236.2pt; Rotation: 0°.