תכנות — שיעור 77 29/January/2009    

מילויים של מצולע ב — Gtk+/Cairo

הורדנו את הגירסא setgame-2009-01-29-003730.tar.gz  מדף הגירסאות . והסתכלנו על הקובץ board.py. יש שם פתרון לתרגיל 3 של שעור קודם . בתאור הפתרון הדגשנו את הנקודות הבאות:

בתמונה הבאה, מצויר הקלף הימני למעלה עם 3 מעוינים במילוי פסים.

קוים עקומים ב — Gtk+/Cairo

התחלנו לראות כיצד מצוירת צורת ה"בוטן" (squiggle). החבילה Gtk+/Cairo מאפשרת ציור קוים עקומים שמוגדרים על ידי נקודות-מוצא ונקודות-שליטה (control points) שנקראים Bezier Curves. תוכלו לראות תיאור וניתוח שלהם, הדורש הבנה אלגברית יותר מבסיסית. אנו ננסה לקבל תחושה של תכונות הקוים הללו וכיצד לעצב אותם.

בגירסא של setgame שמצוינת למעלה, בסוף הפונקציה Board.draw(...) מופיע

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


תרגילים

  1. הורד את הגירסא setgame-2009-01-29-003730.tar.gz  מדף הגירסאות . הרץ, עבור על הפונקציות:
    Board.draw_diamonds_card(...)
    Board.draw_diamond(...)
    והבן אותן היטב.
  2. באופן זמני, בצע את השינוי שגורם לציור squiggle עם נקודות שליטה, כמו שמתואר למעלה. הרץ ושים לב לנקודות השליטה ולקו ההיקף.
  3. באותה הגירסא, לפונקציות:
    Board.draw_ovals_card(...)
    Board.draw_ellipse(...)
    נוסף הפרמטר: texture. שפר את הפונקציה האחרונה, כך שהאליפסות יצוירו עם המילוי הנדרש, בדומה ל Board.draw_diamond(...). התוצאה היא, בשלב זה, בקלף התחתון שבאמצע.

חזרה לעמוד האם