תכנות
—
שיעור 78
5/February/2009
קוים עקומים ב
—
Gtk+/Cairo
המשכנו לראות כיצד מצויר קו עקום בחבילת
Gtk+/Cairo
המאפשרת ציור קוים עקומים שמוגדרים על ידי נקודות-מוצא ונקודות-שליטה
(control points)
הנקראים
Bézier Curves.
הקוים האלה משמשים ביישומים גרפיים ממוחשבים רבים.
לדוגמא
בעיצוב גופנים בתוכנת
ובתוכנת הציור
inkscape
.
תרגילים
-
הורד את הגירסא
setgame-2009-02-06-152318.tar.gz
מדף הגירסאות
.
והרץ.
שים לב לנקודות הבאות:
-
הקלפים מצוירים כך שגובהם קטן מרוחבם, כלומר "שוכבים" ולא "עומדים".
-
בציור קלף האליפסות וקלף ה"בוטנים" ההחלטה על המעברים וצורת המילוי עברה לפונקציות נפרדות:
Board.get_fill_passes(...)
Board.set_fill(...)
|
-
הגדרת הצורה squiggle פושטה. הקוים עדיין מצורים על ידי
עקומי Bézier
בעזרת
פונקציות cairo הנקראות
foocurve_to(...)
.
אפשר כמו קודם לראות את "נקודות השליטה"
אם הופכים ל-True את התנאי שבסוף
Board.draw(...).
-
עבור על הגרסאות החדשות של
Board.draw_ovals_card(...)
Board.draw_ellipse(...)
|
והבן כיצד הן עובדות.
-
ממש מחדש את הפונקציות:
Board.draw_diamonds_card(...)
Board.draw_diamond(...)
|
כך שיצויר הקלף ה"שוכב" העליון עם מעוינים עומדים.
-
"תרגיל רשות:"
שפר את צורת ה- squiggle על ידי שינוי או הוספה של נקודות מעבר או נקודות שליטה
בפונקציה
Board.draw_squiggle(...).
לצורך זה כדאי זמנית לשנות תנאי כמתואר למעלה.
חזרה לעמוד האם