Hướng dẫn này mô tả các khái niệm cơ bản được dùng trong chuyển đổi (tức là di chuyển, xoay, chia tỷ lệ và cắt) các phần tử trang, đặc biệt đối với biến đổi affine cơ bản và các phép toán của nó.
Để biết thêm về cách sử dụng phép biến đổi affine để đạt được kết quả cụ thể, xem hướng dẫn Hình dạng kích thước và vị trí.
Kích thước hình ảnh và vị trí của phần tử trang được kiểm soát bởi thuộc tính: kích thước và biến đổi. Kích thước này mô tả kích thước lý tưởng hoặc kích thước tích hợp sẵn của phần tử trang đang được tạo. Biến đổi xác định giá trị hai chiều ma trận biến đổi affin chỉ định cách biến đổi một đối tượng ở kích thước tích hợp để dẫn đến hình ảnh hoàn thiện.
Khi bạn chọn một phần tử trang trong giao diện người dùng Trang trình bày và thay đổi kích thước hình ảnh của phần tử đó bằng cách sử dụng ô điều khiển điều chỉnh, thì thực ra bạn đang cập nhật ma trận biến đổi này. Việc di chuyển phần tử trên trang hoặc xoay phần tử cũng cập nhật phần tử biến đổi ma trận.
Sử dụng giao diện người dùng của Trang trình bày để bắt đầu
Số học ma trận mà bạn sử dụng để biến đổi và đổi kích thước các phần tử trang là rất mạnh mẽ, nhưng thoạt đầu có thể gây choáng ngợp; hầu hết trang này mô tả tính toán. Tuy nhiên, bạn có thể đơn giản hoá quy cách của phép biến đổi và bằng phương pháp sau:
- Tạo thành phần trang bằng giao diện người dùng của Trang trình bày.
- Định vị tỷ lệ các phần tử trang này theo ý muốn, vẫn sử dụng giao diện người dùng Trang trình bày.
- Đọc kích thước và biến đổi của các phần tử đó bằng phương thức get.
Như vậy có thể đủ để giúp bạn bắt đầu; phần còn lại của hướng dẫn này giải thích biến đổi các phép tính mà bạn có thể dùng để thao tác với các phần tử trang một cách chi tiết.
Ma trận biến đổi affine
Ma trận biến đổi affin hai chiều thường được dùng trong đồ hoạ để kiểm soát tỷ lệ, xoay, cắt, phản chiếu và dịch phần tử. Trong API Trang trình bày, sự biến đổi của một phần tử trang được biểu thị dưới dạng ma trận 3x3:
Các tham số được sử dụng trong phép biến đổi là:
translate_x |
Tham số dịch chỉ định vị trí (X,Y) của góc trên bên trái của phần tử trang, so với góc trên bên trái của trang. Bạn chỉ định vị trí tương đối bằng cách sử dụng Đơn vị một trong hai điểm (pt) hoặc đơn vị hệ mét tiếng Anh (EMU). |
translate_y
| |
scale_x
| Tham số tỷ lệ kiểm soát độ lớn của một phần tử trang khi
kết xuất. Đây là các thừa số nhân không đơn vị; ví dụ: scale_x
1,5 sẽ phóng to chiều rộng của phần tử thêm 50%.
|
scale_y
| |
shear_x
| Tham số cắt cũng không có đơn vị và kiểm soát độ nghiêng của trang . Bạn có thể dùng đồng thời tham số tỷ lệ và tham số cắt để xoay trang . |
shear_y |
Bạn có thể tìm thấy nhiều ví dụ trên web cho thấy cách ma trận biến đổi 2D ảnh hưởng đến việc hiển thị đối tượng đồ hoạ.
Ma trận biến đổi tương ứng với nhóm chứa hoặc trang chứa
. Ví dụ: nếu bạn xoay một nhóm chứa một hình chữ nhật,
transform
của nhóm
các giá trị của trường phản ánh chế độ xoay, nhưng transform
của hình chữ nhật
thì không có.
Đang tính toán kích thước hình ảnh
Để xác định kích thước trực quan (được hiển thị) của một phần tử trang, bạn phải xem xét cả kích thước lẫn biến đổi thuộc tính. Bạn không thể xác định hai phần tử trang lớn hơn về mặt trực quan chỉ bằng cách so sánh thuộc tính kích thước của chúng: bạn phải ánh xạ ranh giới của phần tử bằng cách sử dụng ma trận biến đổi và tính toán kích thước được hiển thị.
Ánh xạ một điểm
Để ánh xạ một điểm cụ thể bằng ma trận biến đổi, hãy chuyển đổi điểm (x, y) thành một vectơ [x, y, 1] rồi thực hiện phép nhân ma trận. Cân nhắc ánh xạ một điểm p:
\[p' = Ap\]
Điều này sẽ trở thành:
Do đó, toạ độ của điểm mới p' là:
Đang tính toán ranh giới
Để xác định kích thước kết xuất của hộp giới hạn của một phần tử sau khi biến đổi mà có thể cắt và chia tỷ lệ, hãy sử dụng:
Để biết thêm về cách sử dụng phép biến đổi affine để đạt được kết quả cụ thể, xem hướng dẫn Hình dạng kích thước và vị trí.
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.