בקטנה: בכדי שגרפיקה ממוחשבת תוכל לפעול במהירות מספקת, עליה להיות יעילה. בפוסט נסביר על טכניקה חשובה ליצירת גרפיקה במהירות, המבוססת על יצורים מתמטיים הנקראים "עקומות בזייה"
ב-24 בינואר 1984, הציג מנכ"ל אפל האגדי, סטיב ג'ובס, את המקינטוש - מחשב אישי עם ממשק גרפי. למרות שמחשבים עם ממשק גרפי היו קיימים קודם לכן, הכנסת הממשק למחשב אישי הייתה מהפכה של ממש. המעבר הצריך שינויים רבים, כמו למשל האופן שבו מייצרים ומשתמשים בגופנים. במחשבים שקדמו למקינטוש (למשל: IBM PC), כל אות היתה מיוצגת כמטריצת נקודות ("bitmap"), שבה היו "מדליקים" נקודות במקומות מתאימים, בדומה לשלטי חוצות. אולם שיטה זו לא ישימה בממשק גרפי, כיוון שצריך לייצר בו גופנים בשלל צורות וגדלים, לסובב אותם ולהתאימם למסכים שונים. מה ניתן לעשות?
הפתרון לבעיה הגיע ממתמטיקה פשוטה יחסית: במקום מטריצת הנקודות, ניתן לבנות גופנים באמצעות משוואות המייצגות עקומות. בצורה זו ניתן לבצע את החישובים רק בזמן ההצגה על המסך. שיטה זו נקראת "גרפיקה וקטורית", והיא בשימוש על ידי תוכנות גרפיות גם בימינו (למשל אדובי אילוסטרטור). אולם, כיצד ניתן לעשות זאת? והאם המעצבים הגרפיים שבונים צורות, צריכים לעמול ולמלא את המחשב במשוואות?
הפתרון לבעיה נעזר במשפחת עקומות מתמטיות הנקראת "עקומות בזייה" [1]. השימוש הנרחב הראשון בהן נעשה על ידי מהנדס הרכב הצרפתי פייר בזייה (Pierre Bézier) ב-1962. לעקומות אילו יש תכונות מעניינות רבות, אחת מהן היא שניתן לבנות אותן בעזרת מספר קטן של נקודות, הנקראות "נקודות בקרה".
לדוגמה, באמצעות עקומת בזייה ריבועית (Quadratic Bézier), נוכל ליצור בתוכנה גרפית קטע בעל עקמומיות נאה הניתנת לשליטה כרצוננו . נעשה זאת על ידי קביעת נקודת התחלת הקטע, נקודת הסיום ונקודת בקרה נוספת, שלא נמצאת על העקומה, אבל קובעת את העקמומיות שלה. על ידי גרירת נקודה זו ממקום למקום באמצעות העכבר, נוכל ליצור בתוכנות גרפיות צורות בעלות עקמומיות שונה. למשל, אם נקודת הבקרה נמצאת באמצע בין נקודות הקצה (כלומר על "אנך האמצעים"), נקבל פרבולה. אם נסיט את הנקודה לצדדים נקבל עקמומיות לא סימטרית. לאחר שבחרנו את שלושת הנקודות, המחשב ישמור את הקורדינטות שלהן, וכשיידרש לצייר שוב את הצורה, הוא ישלוף אותן מהזיכרון, וישתמש בהן לציור העקומה באמצעות חישוב המשוואה. צורת העקומה לא תשתנה גם אם נשנה את רזולוצית המסך או גודל החלון
כדי לבנות צורות מורכבות יותר (למשל: גופנים חדשים, לוגואים), יש להשתמש בעוד נקודות בקרה. ניתן להשתמש לשם כך בעקומות בזייה מורכבות יותר, אך הדרך המקובלת בתוכנות הגרפיות היא לעשות חיבור בין עקומות בזייה ריבועיות.
כדי ליצור צורה עגלגלה ויפה ("בלי שפיצים"), נצטרך להשתמש בהרבה נקודות ולמקם אותן בצורה מתאימה, נעימה לעין. לדוגמה, לצורך ציור פונט בצורת עיגול משתמשים לעיתים בצירוף של-8 מקטעים של עקומות בזייה ריבועיות [2]. כמובן, הדרך המועדפת היא לתת למעצבים גרפיים בעלי ניסיון לעשות זאת עבורנו.
במחשבים מודרניים, הגופנים וצורות גרפיות אחרות נבנים לעיתים קרובות על ידי צירוף של עקומות בזייה. תקן הגופנים הראשון שנבנה בשיטות אילו, ואומץ על ידי אפל ומיקרוסופט נקרא [2]Truetype, ומכיל גופנים פופולריים , כמו למשל Arial.
השימוש בעקומת בזייה לא מוגבל רק לציורים במחשב. משתמשים בו למשל גם בעיצוב תעשייתי, תיאור נעים לעיין של אפקט תנועה, ועוד. אם אתם מתעניינים בנושא בגדול, פשוט עלו לרגל לירושלים והסתכלו אל על: לטוב ולרע, גשר המיתרים נבנה בשימוש בעקומת בזייה.
[1] על עקום בזייה
https://he.wikipedia.org/wiki/%D7%A2%D7%A7%D7%95%D7%9D_%D7%91%D7%96%D7%99%D7%99%D7%94
[2] על גופן הtruetype
https://en.wikipedia.org/wiki/TrueType