טרנספורמציות ורכיבי דפים

במדריך הזה מתוארים המושגים הבסיסיים שמשמשים לטרנספורמציה (כלומר, הזזה, סיבוב, הגדלה וחיתוך) של רכיבי דף, תוך התמקדות במיוחד בטרנספורמציה האפינית ובפעולות שלה.

למידע נוסף על השימוש בהמרות מסוג זיקה כדי להשיג תוצאות ספציפיות, קראו את המדריך צורות גודל ומיקום.

אפשר לשלוט בגודל ובמיקום החזותי של רכיב בדף באמצעות שני מאפיינים: size ו-transform. הגודל מתאר את הגודל האידיאלי או המובנה של רכיב הדף שנוצר. הטרנספורמציה מציינת מטריצה דו-ממדית של הטרנספורמציה האפינית, שמציינת איך אובייקט בגודל המובנה שלו עובר שינוי כדי ליצור את המראה הוויזואלי הסופי שלו.

תרשים של צורה שמעובדת באמצעות טרנספורמציה אפינית

כשבוחרים רכיב דף בממשק המשתמש של Slides ומשנים את הגודל החזותי שלו באמצעות נקודות האחיזה להתאמה, למעשה מעדכנים את מטריצת הטרנספורמציה הזו. העברת הרכיב בדף או סיבוב שלו מעדכנים גם את מטריצת הטרנספורמציה של הרכיב.

איך להתחיל להשתמש בממשק המשתמש של Slides

שיטת החישוב של המטריצה שבה משתמשים כדי לשנות את גודל הרכיבים בדף ולשנות את הגודל שלהם היא מאוד חזקה, אבל בהתחלה היא יכולה להרתיע. רוב החישובים האלה נתאר כאן. עם זאת, תוכלו לפשט את המפרט של טרנספורמציות וגדלים באמצעות הגישה הבאה:

  1. ליצור רכיבים בדף באמצעות ממשק המשתמש של Slides.
  2. ממקמים את קנה המידה של רכיבי הדף האלה כרצונך, עדיין באמצעות ממשק המשתמש של Slides.
  3. קוראים את הגודל והטרנספורמציה של הרכיבים האלה באמצעות שיטת get.

המידע הזה מספיק כדי לעזור לכם להתחיל. בהמשך המדריך מוסבר על חישובי הטרנספורמציה שבהם אפשר להשתמש כדי לטפל ברכיבים בדף בפירוט.

מטריצות של טרנספורמציה אפינית

מטריצות הטרנספורמציה האפיניות הדו-ממדיות משמשות בדרך כלל בספריות גרפיות כדי לשלוט בקנה המידה, הסיבוב, הגזירה, ההשתקפות והתרגום של הרכיבים. ב-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 הפרמטרים של Translate מציינים את המיקום (X,Y) של הפינה השמאלית העליונה של רכיב הדף, ביחס לפינה הימנית העליונה של הדף. אפשר לציין את המיקום היחסי באמצעות יחידות של נקודות (pt) או של יחידות מידה באנגלית (EMU).
translate_y
scale_x הפרמטרים של קנה המידה קובעים את הגודל של רכיב דף כלשהו בזמן העיבוד. אלה גורמי הכפלה ללא יחידות. לדוגמה, ערך scale_x של 1.5 מגדיל את רוחב הרכיב ב-50%.
scale_y
shear_x גם הפרמטרים של הגזירה הם חסרי יחידות ושולטים בהטיה של רכיב בדף. ניתן להשתמש בפרמטרים של שינוי גודל וגזירה ביחד כדי לסובב רכיב בדף.
shear_y

אפשר למצוא דוגמאות רבות באינטרנט שמראות איך מטריצות טרנספורמציה דו-ממדיות משפיעות על עיבוד אובייקטים גרפיים.

מטריצת הטרנספורמציה היא יחסית לקבוצה המכילה או לדף המכיל של הרכיב. לדוגמה, אם יוצרים רוטציה לקבוצה שמכילה מלבן, ערכי השדות transform של הקבוצה משקפים את הסיבוב, אבל ערכי השדות transform של המלבן לא לא יכללו אותו.

מתבצע חישוב של הגודל החזותי

כדי לקבוע את הגודל החזותי (המעובד) של רכיב בדף, צריך לקחת בחשבון את הגודל ואת מאפייני הטרנספורמציה ביחד. אי אפשר לקבוע איזה משני רכיבי הדף גדול יותר מבחינה חזותית רק על ידי השוואת מאפייני הגודל שלהם: צריך למפות את גבולות הרכיב באמצעות מטריצת הטרנספורמציה ולחשב גודל שעבר רינדור.

מיפוי נקודה

כדי למפות נקודה ספציפית באמצעות מטריצת הטרנספורמציה, ממירים את הנקודה (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)$$

למידע נוסף על השימוש בהמרות מסוג זיקה כדי להשיג תוצאות ספציפיות, קראו את המדריך צורות גודל ומיקום.

מגבלות

חלק משדות המיקום והגודל לא תואמים לסוגים מסוימים של רכיבי דף. הטבלה שבהמשך מסכמת את התאימות של רכיבים מסוימים בדף לשדות של מידות ומיקום.

שדה צורה וידאו טבלה
תרגום
קנה מידה לא**
חיתוך לא לא

** כדי לעדכן את המאפיינים של שורות ועמודות בטבלה, משתמשים ב-UpdateTableRowPropertiesRequest וב-UpdateTableColumnPropertiesRequest.

כל שדות הגודל והמיקום עשויים לספק תוצאות לא צפויות אם ברכיב הדף יש חיתוך. כל המגבלות כפופות לשינויים. מידע עדכני זמין במאמר Google Slides API.