Hướng dẫn này mô tả cách bạn định kích thước và định vị các phần tử trang bằng affine biến đổi. Để làm quen với khái niệm biến đổi affine, hãy xem hướng dẫn về khái niệm về Biến đổi.
Chuyển đổi các phần tử
API Trang trình bày cho phép bạn đặt lại vị trí và điều chỉnh tỷ lệ các phần tử trên một trang. Để thực hiện việc này, Trước tiên, hãy xác định loại quy tắc chuyển đổi cần áp dụng, sau đó áp dụng quy tắc đó chuyển đổi bằng cách sử dụng presentations.batchUpdate phương thức chứa một hoặc nhiều UpdatePageElementTransformRequest phần tử.
Biến đổi có thể được thực hiện theo một trong hai cách applyModes:
ABSOLUTE
biến đổi thay thế phép biến đổi hiện có của phần tử ma trận. Mọi tham số mà bạn bỏ qua trong yêu cầu cập nhật biến đổi đều được đặt thành 0.RELATIVE
biến đổi được nhân với giá trị hiện có của phần tử ma trận biến đổi (thứ tự của các phép nhân rất quan trọng):
Các biến đổi tương đối sẽ di chuyển hoặc điều chỉnh tỷ lệ phần tử trang so với vị trí hiện tại; ví dụ: di chuyển hình dạng 100 điểm sang trái hoặc xoay 40 độ. Biến đổi tuyệt đối loại bỏ thông tin vị trí và tỷ lệ hiện có; với ví dụ: di chuyển một hình dạng vào giữa trang hoặc điều chỉnh tỷ lệ hình dạng chiều rộng cụ thể.
Các phép biến đổi phức tạp thường có thể được biểu diễn dưới dạng một chuỗi gồm các phép biến đổi đơn giản hơn. Tính toán trước một phép biến đổi – kết hợp nhiều phép biến đổi bằng cách sử dụng phép nhân ma trận – thường có thể giảm mức hao tổn.
Đối với một số thao tác, bạn phải biết biến đổi hiện có của một phần tử . Nếu không có các giá trị này, bạn có thể truy xuất chúng bằng presentations.pages.get của bạn.
Dịch thuật
Dịch đơn giản chỉ là hành động di chuyển một phần tử trang sang một vị trí mới trên trên cùng một trang. Bản dịch Absolute sẽ di chuyển phần tử đến một điểm cụ thể, trong khi bản dịch tương đối di chuyển phần tử một khoảng cách cụ thể.
Ma trận biến đổi bản dịch cơ bản có dạng:
Khi bạn sử dụng UpdatePageElementTransformRequest để dịch một phần tử (mà không làm thay đổi kích thước, độ cắt hoặc hướng của phần tử đó), bạn có thể sử dụng một trong các AffineTransform cấu trúc:
// 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' } }
Chuyển tỷ lệ
Chuyển tỷ lệ là hành động kéo giãn hoặc ép một phần tử dọc theo dấu X và/hoặc Phương diện Y để thay đổi kích thước. Ma trận biến đổi tỷ lệ cơ bản có dạng như sau:
Bạn có thể trực tiếp sử dụng biểu mẫu ma trận này dưới dạng phép biến đổi RELATIVE
để đổi kích thước một
nhưng điều này cũng có thể ảnh hưởng đến khả năng cắt và dịch thuật của phần tử.
Để điều chỉnh tỷ lệ phần tử mà không ảnh hưởng đến độ cắt hoặc bản dịch của phần tử, hãy chuyển sang
khung tham chiếu.
Góc xoay
Biến đổi xoay làm xoay phần tử trang xung quanh một điểm, sử dụng phương pháp điều chỉnh theo tỷ lệ và tham số cắt. Ma trận biến đổi xoay cơ bản có dạng như sau, trong đó góc quay (tính bằng radian) được đo từ trục X, di chuyển ngược chiều kim đồng hồ:
Tương tự như việc điều chỉnh theo tỷ lệ, bạn có thể trực tiếp sử dụng biểu mẫu ma trận này dưới dạng RELATIVE
biến đổi để xoay một phần tử, nhưng thao tác này khiến phần tử bị xoay
về nguồn gốc trang. Để xoay phần tử quanh tâm hoặc
điểm khác nhau,
chuyển sang khung tham chiếu đó.
Phản chiếu
Hình ảnh phản chiếu phản chiếu một phần tử qua một đường hoặc trục cụ thể. Cơ bản Ma trận biến đổi phản xạ trục x và y có các dạng sau:
Tương tự như việc điều chỉnh theo tỷ lệ, bạn có thể trực tiếp sử dụng biểu mẫu ma trận này dưới dạng RELATIVE
biến đổi để phản ánh một phần tử, nhưng điều này khiến phần tử đó dịch thành
tốt. Để phản ánh phần tử mà không cần bản dịch,
chuyển sang khung tham chiếu.
Khung tham chiếu phần tử
Áp dụng tỷ lệ cơ bản, phản ánh hoặc xoay chuyển đổi trực tiếp thành một trang tạo ra phép biến đổi trong khung tham chiếu của trang. Ví dụ: một xoay cơ bản sẽ xoay phần tử về nguồn gốc của trang (phần tử góc trên bên trái). Tuy nhiên, bạn có thể hoạt động trong khung tham chiếu của bản thân phần tử, ví dụ: để xoay phần tử xung quanh điểm giữa của nó.
Để chuyển đổi một phần tử trong khung tham chiếu của chính nó, hãy đặt phần tử đó vào giữa hai
các bản dịch khác: bản dịch trước đó T1
di chuyển tâm phần tử
vào nguồn gốc của trang và bản dịch T2
sau đây để di chuyển phần tử này
trở về vị trí ban đầu. Toán tử đầy đủ có thể được biểu thị dưới dạng ma trận
sản phẩm:
Bạn cũng có thể chuyển sang các hệ tham chiếu khác bằng cách dịch các điểm khác nhau về máy chủ gốc. Các điểm này trở thành trung tâm của tham chiếu mới khung.
Có thể thực hiện từng phép biến đổi này theo cách riêng
yêu cầu biến đổi RELATIVE
tuần tự. Tốt nhất là bạn nên tính trước
A'
ở trên với phép nhân ma trận và áp dụng kết quả dưới dạng một
Biến đổi ABSOLUTE
. Ngoài ra, hãy tính trước sản phẩm T2 * B * T1
và áp dụng biến đó dưới dạng một phép biến đổi RELATIVE
. Cả hai cách này đều hiệu quả hơn,
về hoạt động API, sau đó gửi từng yêu cầu biến đổi riêng lẻ.
Các điểm hạn chế
Một số trường kích thước và vị trí không tương thích với một số loại trang phần tử. Bảng dưới đây tóm tắt khả năng tương thích của một số phần tử trang với các trường kích thước và vị trí.
Trường | Hình dạng | Video | Bảng |
---|---|---|---|
Bản dịch | ✔ | ✔ | ✔ |
Điều chỉnh theo tỷ lệ | ✔ | ✔ | Không** |
Cắt | ✔ | Không | Không |
** Để cập nhật phương diện hàng và cột trong bảng, hãy sử dụng
UpdateTableRowPropertiesRequest
và
UpdateTableColumnPropertiesRequest
Tất cả các trường kích thước và định vị có thể trả lại kết quả không mong muốn nếu phần tử trang bị cắt. Tất cả các giới hạn có thể thay đổi. Để biết thông tin mới nhất, hãy xem API Google Trang trình bày.
API Trang trình bày có thể tái cấu trúc các giá trị của bạn
Khi bạn tạo phần tử trang, bạn có thể chỉ định kích thước và biến đổi phần tử đó cung cấp một kết quả trực quan nhất định. Tuy nhiên, API có thể thay thế thông tin bạn cung cấp với các giá trị khác mà có cùng giao diện trực quan. Nhìn chung, nếu bạn ghi kích thước bằng API, nhưng bạn sẽ không được đảm bảo trả về kích thước như cũ kích thước. Tuy nhiên, bạn sẽ nhận được kết quả tương tự nếu áp dụng quy tắc chuyển đổi thành tài khoản.