การปรับขนาดและการจัดตำแหน่งขององค์ประกอบของหน้า

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

การเปลี่ยนแปลงองค์ประกอบ

Slides API ช่วยให้คุณเปลี่ยนตำแหน่งและปรับขนาดองค์ประกอบในหน้าได้ วิธีการคือ ก่อนอื่นให้พิจารณาว่าคุณต้องการใช้การเปลี่ยนรูปแบบใด แล้วจึงนำไปใช้ เปลี่ยนรูปแบบโดยใช้ presentations.batchUpdate ที่มีอย่างน้อย 1 รายการ UpdatePageElementTransformRequest จากองค์ประกอบเหล่านี้

เปลี่ยนรูปแบบได้จาก 2 ส่วน applyModes:

  • ABSOLUTE เปลี่ยนรูปแบบ แทนที่ การเปลี่ยนรูปแบบที่มีอยู่ขององค์ประกอบ เมตริกซ์ ระบบจะตั้งค่าพารามิเตอร์ที่คุณละเว้นจากคำขออัปเดตการเปลี่ยนรูปแบบเป็น ศูนย์

  • การเปลี่ยนรูปแบบ RELATIVE รายการมีการคูณกับที่มีอยู่ขององค์ประกอบ เมทริกซ์การแปลงรูป (ลำดับของการคูณเป็นเรื่องสำคัญ):

$$A' = BA$$

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

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

สำหรับการดำเนินการบางอย่าง คุณต้องทราบว่ามีการเปลี่ยนรูปแบบใดขององค์ประกอบอยู่ เช่น หากไม่มีค่าเหล่านี้ คุณสามารถดึงข้อมูลด้วย presentations.pages.get อีกครั้ง

การแปล

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

เมทริกซ์การแปลงคำแปลพื้นฐานมีรูปแบบดังนี้

$$T=\begin{bmatrix} 1 & 0 & translate\_x\\ 0 & 1 & translate\_y\\ 0 & 0 & 1 \end{bmatrix}$$

เมื่อคุณใช้ UpdatePageElementTransformRequest เพื่อแปลองค์ประกอบ (โดยไม่เปลี่ยนขนาด แรงเฉือน หรือการวางแนว) สามารถใช้สิ่งใดสิ่งหนึ่งต่อไปนี้ AffineTransform โครงสร้าง:

// 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'
  }
}

การปรับสเกล

การปรับขนาดคือการดำเนินการยืดหรือบีบองค์ประกอบตาม X และ/หรือ ขนาด Y เพื่อเปลี่ยนขนาด เมทริกซ์การเปลี่ยนรูปแบบการปรับขนาดพื้นฐานมีรูปแบบดังต่อไปนี้

$$S=\begin{bmatrix} scale\_x & 0 & 0\\ 0 & scale\_y & 0\\ 0 & 0 & 1 \end{bmatrix}$$

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

การหมุน

การหมุนจะเปลี่ยนรูปแบบการหมุนองค์ประกอบของหน้าไปรอบๆ จุด โดยใช้การปรับขนาดและ พารามิเตอร์การเฉือน เมทริกซ์เปลี่ยนรูปแบบการหมุนพื้นฐานมีรูปแบบดังต่อไปนี้ ซึ่งวัดมุมการหมุน (เรเดียน) จากแกน X และเคลื่อนที่ ทวนเข็มนาฬิกา:

$$R=\begin{bmatrix} cos(\theta) & sin(\theta) & 0\\ -sin(\theta) & cos(\theta) & 0\\ 0 & 0 & 1 \end{bmatrix}$$

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

การสะท้อนความรู้สึก

เงาสะท้อนจะสะท้อนองค์ประกอบผ่านเส้นหรือแกนที่เฉพาะเจาะจง องค์ประกอบ เมทริกซ์การเปลี่ยนแปลงการสะท้อนของแกน x และแกน y มีรูปแบบดังต่อไปนี้

$$F_x=\begin{bmatrix} 1 & 0 & 0\\ 0 & -1 & 0\\ 0 & 0 & 1\\ \end{bmatrix}\qquad\qquad F_y=\begin{bmatrix} -1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 1\\ \end{bmatrix}$$

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

เฟรมอ้างอิงองค์ประกอบ

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

หากต้องการเปลี่ยนรูปแบบองค์ประกอบภายในเฟรมอ้างอิงของตัวเอง ให้ล้อมรอบองค์ประกอบนั้นไว้ระหว่าง 2 เฟรม คำแปลอื่นๆ: การแปลก่อนหน้า T1 ซึ่งย้ายศูนย์กลางองค์ประกอบ ไปยังต้นทางของหน้า และการแปลต่อไปนี้ T2 ซึ่งจะย้ายองค์ประกอบ กลับไปยังตำแหน่งเดิม การดำเนินการทั้งหมดอาจแสดงเป็นเมทริกซ์ได้ ผลิตภัณฑ์:

$$A' = T2 \times B \times T1 \times A$$

คุณยังเปลี่ยนไปใช้เฟรมอ้างอิงอื่นๆ ได้ด้วยการแปลจุดต่างๆ ไปยังต้นทางแทน จุดเหล่านี้จะกลายเป็นศูนย์กลางของข้อมูลอ้างอิงใหม่ เฟรม

คุณสามารถดำเนินการเปลี่ยนรูปแบบเหล่านี้แยกกันได้ คำขอเปลี่ยนรูปแบบ RELATIVE ตามลำดับ ตามหลักการแล้วคุณควรคำนวณ A' ด้านบนพร้อมการคูณเมทริกซ์และใช้ผลลัพธ์เป็นรายการเดียว การเปลี่ยนรูปแบบ ABSOLUTE หรือคำนวณผลิตภัณฑ์ T2 * B * T1 ล่วงหน้า และใช้สิ่งนั้นเป็นการแปลง RELATIVE รายการเดียว ทั้ง 2 วิธีนี้มีประสิทธิภาพมากกว่า ในแง่ของการดำเนินการ API แล้วจึงส่งคำขอเปลี่ยนรูปแบบทีละรายการ

ข้อจำกัด

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

ช่อง รูปร่าง วิดีโอ ตาราง
คำแปล
Scale ไม่ได้**
การตัด ไม่ได้ ไม่ได้

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

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

Slides API อาจเปลี่ยนโครงสร้างภายในโค้ดของคุณ

เมื่อคุณสร้างองค์ประกอบของหน้า คุณสามารถระบุขนาดและเปลี่ยนรูปแบบ แสดงผลการค้นหาภาพที่เฉพาะเจาะจง อย่างไรก็ตาม API อาจแทนที่ข้อมูลที่คุณให้ไว้ ด้วยค่าอื่นที่มีรูปลักษณ์เหมือนกัน โดยทั่วไป หาก คุณเขียนขนาดโดยใช้ API คุณจะไม่ได้รับการรับประกันว่าจะได้รับค่าเดียวกัน ขนาด อย่างไรก็ตาม คุณควรได้รับผลลัพธ์เดียวกันหากคุณแปลงการแปลงเป็น ของคุณได้