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

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

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

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

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

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

שימוש בממשק המשתמש של Slides כדי להתחיל

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

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

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

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

בספריות גרפיקה נעשה שימוש נפוץ במטריצות של טרנספורמציות אפיניות דו-מימדיות כדי לשלוט בשינוי הגודל, בסיבוב, בזווית, בהשתקפות ובתרגום של רכיבים. ב-Slides API, טרנספורמציה של רכיב דף מיוצגת כמטריצה 3x3:

A=[scale_xshear_xtranslate_xshear_yscale_ytranslate_y001]

הפרמטרים שנעשה בהם שימוש בטרנספורמציה הם:

translate_x הפרמטרים של התרגום מציינים את המיקום (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

הקוד הופך לזה:

[xy1]=[scale_xshear_xtranslate_xshear_yscale_ytranslate_y001][xy1]

לכן, הקואורדינטות של הנקודה החדשה p' הן:

x=(scale_x×x)+(shear_x×y)+translate_xy=(scale_y×y)+(shear_y×x)+translate_y

חישוב הגבול

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

width=(scale_x×width)+(shear_x×height)height=(scale_y×height)+(shear_y×width)

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

מגבלות

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

שדה צורה וידאו טבלה
תרגום
התאמה לעומס (scale) לא**
שינוי כיוון לא לא

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

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