การแปลงและองค์ประกอบของหน้า

คู่มือนี้จะอธิบายแนวคิดสำคัญที่ใช้ในการเปลี่ยนรูปแบบ (นั่นคือ การย้าย การหมุน การปรับขนาด และการตัดแถว) องค์ประกอบของหน้าเว็บ โดยมุ่งเน้นที่การเปลี่ยนรูปแบบแบบความสัมพันธ์และการดําเนินการที่เกี่ยวข้องโดยเฉพาะ

ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้การเปลี่ยนรูปแบบแบบ affine เพื่อให้บรรลุผลลัพธ์ที่ต้องการ ดูคู่มือขนาดและรูปร่างตำแหน่ง

พร็อพเพอร์ตี้ 2 แบบจะควบคุมขนาดภาพและตำแหน่งขององค์ประกอบของหน้า ได้แก่ ขนาด และ การเปลี่ยนรูปแบบ ขนาดจะอธิบายขนาดที่เหมาะสมหรือขนาดในตัวขององค์ประกอบหน้าเว็บที่กำลังสร้าง การเปลี่ยนรูปแบบจะระบุเมทริกซ์การเปลี่ยนรูปแบบแบบ affine แบบ 2 มิติที่ระบุวิธีเปลี่ยนรูปแบบออบเจ็กต์ตามขนาดในตัวเพื่อแสดงผลลักษณะที่ปรากฏขั้นสุดท้าย

แผนภาพของรูปร่างที่แสดงผลผ่านการเปลี่ยนรูปแบบแบบ affine

เมื่อคุณเลือกองค์ประกอบของหน้าใน UI ของสไลด์และเปลี่ยนขนาดภาพโดยใช้แฮนเดิลการปรับเปลี่ยน หมายความว่าคุณกำลังอัปเดตเมทริกซ์การเปลี่ยนรูปแบบนี้จริงๆ การย้ายองค์ประกอบไปทั่วหน้าหรือหมุนองค์ประกอบเป็นการอัปเดตเมทริกซ์การเปลี่ยนรูปแบบขององค์ประกอบด้วย

ใช้ UI ของสไลด์เพื่อเริ่มต้นใช้งาน

การคำนวณเมตริกซ์ที่คุณใช้แปลงและปรับขนาดองค์ประกอบของหน้ามีประสิทธิภาพมากแต่อาจทำได้ยากในช่วงแรก ส่วนใหญ่ในหน้านี้จะอธิบายการคำนวณเหล่านี้ แต่คุณอาจขอให้ระบุการเปลี่ยนรูปแบบและขนาดให้ง่ายขึ้นได้โดยใช้วิธีต่อไปนี้

  1. สร้างองค์ประกอบของหน้าโดยใช้ UI ของสไลด์
  2. จัดตำแหน่งองค์ประกอบของหน้าเหล่านี้ตามต้องการ แต่ยังใช้ UI ของสไลด์อยู่
  3. อ่านขนาดและการเปลี่ยนรูปแบบขององค์ประกอบเหล่านั้นโดยใช้เมธอด get

ซึ่งเพียงพอสำหรับการเริ่มต้นใช้งานแล้ว ส่วนที่เหลือของคู่มือนี้จะอธิบายการคำนวณการเปลี่ยนรูปแบบที่คุณใช้เพื่อจัดการองค์ประกอบของหน้าอย่างละเอียดได้

เอฟซีนเปลี่ยนรูปแบบเมทริกซ์

ไลบรารีกราฟิกมักจะใช้เมทริกซ์การเปลี่ยนรูปแบบแบบ affine สองมิติเพื่อควบคุมขนาด การหมุน เฉือน การสะท้อน และการแปลองค์ประกอบ ใน Slides API การเปลี่ยนรูปแบบขององค์ประกอบหน้าเว็บ จะแสดงเป็นเมทริกซ์ 3x3 ดังนี้

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

พารามิเตอร์ที่ใช้ในการแปลงได้แก่

translate_x พารามิเตอร์แปลภาษาจะระบุตำแหน่ง (X,Y) ของมุมบนซ้ายขององค์ประกอบของหน้าโดยสัมพันธ์กับมุมซ้ายบนของหน้า คุณระบุตำแหน่งสัมพัทธ์ได้โดยใช้หน่วยของคะแนน (pt) หรือหน่วยเมตริกภาษาอังกฤษ (EMU)
translate_y
scale_x พารามิเตอร์มาตราส่วนจะควบคุมขนาดขององค์ประกอบของหน้าเมื่อแสดงผล ปัจจัยเหล่านี้เป็นปัจจัยการคูณแบบไม่เป็นหน่วย เช่น ค่า scale_x ที่ 1.5 จะขยายความกว้างขององค์ประกอบขึ้น 50%
scale_y
shear_x นอกจากนี้ พารามิเตอร์ Shear จะไม่มีหน่วยเป็นหน่วยและควบคุมการเอียงขององค์ประกอบหน้าเว็บ ใช้พารามิเตอร์มาตราส่วนและเฉือนร่วมกันเพื่อหมุนองค์ประกอบของหน้าได้
shear_y

คุณสามารถดูตัวอย่างมากมายในเว็บที่แสดงให้เห็นเมทริกซ์การแปลง 2 มิติ ส่งผลต่อการแสดงวัตถุกราฟิกอย่างไร

เมทริกซ์การเปลี่ยนรูปแบบจะสัมพันธ์กับกลุ่มหรือหน้าที่มีขององค์ประกอบ เช่น หากคุณหมุนกลุ่มที่มีสี่เหลี่ยมผืนผ้า ค่าในช่อง transform ของกลุ่มจะแสดงการหมุน แต่ค่าในช่อง transform ของรูปสี่เหลี่ยมผืนผ้าจะไม่แสดงผล

กำลังคำนวณขนาดที่มองเห็น

หากต้องการกำหนดขนาดภาพ (ที่แสดงผล) ขององค์ประกอบหน้าเว็บ คุณต้องพิจารณาทั้งพร็อพเพอร์ตี้ขนาดและการเปลี่ยนรูปแบบร่วมกัน คุณไม่สามารถระบุได้ว่าองค์ประกอบของหน้าใดใน 2 ส่วนที่ดูใหญ่กว่าหรือเป็นเพียงการเปรียบเทียบคุณสมบัติของขนาด โดยคุณต้องจับคู่ขอบเขตขององค์ประกอบโดยใช้เมทริกซ์การแปลงและคำนวณขนาดที่แสดงผล

การทำแผนที่จุด

เมื่อต้องการจับคู่จุดที่เฉพาะเจาะจงโดยใช้เมทริกซ์การแปลง ให้แปลงจุด (x, y) เป็นเวกเตอร์ [x, y, 1] แล้วทำการคูณเมทริกซ์ พิจารณาการแมปจุด p ดังนี้

\[p' = Ap\]

ซึ่งจะกลายเป็น

$$\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}$$

ดังนั้นพิกัดของจุดใหม่ p' จึงเป็นดังนี้

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

กำลังคำนวณขอบเขต

หากต้องการระบุขนาดที่แสดงผลของช่องล้อมรอบขององค์ประกอบหลังจากการเปลี่ยนรูปแบบที่ตัดและปรับขนาด ให้ใช้

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้การเปลี่ยนรูปแบบแบบ affine เพื่อให้บรรลุผลลัพธ์ที่ต้องการ ดูคู่มือขนาดและรูปร่างตำแหน่ง

ข้อจำกัด

ช่องการปรับขนาดและการกำหนดตำแหน่งบางช่องใช้ไม่ได้กับองค์ประกอบของหน้าบางประเภท ตารางด้านล่างจะสรุปความเข้ากันได้ขององค์ประกอบหน้าเว็บบางรายการกับช่องการปรับขนาดและตําแหน่ง

ฟิลด์ รูปร่าง วิดีโอ ตาราง
คำแปล
Scale ไม่**
เฉือน ไม่ได้ ไม่ได้

** หากต้องการอัปเดตมิติข้อมูลแถวและคอลัมน์ของตาราง ให้ใช้ UpdateTableRowPropertiesRequest และ UpdateTableColumnPropertiesRequest

ช่องปรับขนาดและจัดตำแหน่งทั้งหมดอาจให้ผลลัพธ์ที่ไม่คาดคิดหากองค์ประกอบของหน้ามีการเฉือน ข้อจำกัดทั้งหมดอาจมีการเปลี่ยนแปลง ดูข้อมูลล่าสุดได้ที่ API ของ Google สไลด์