מדריך | Python Turtle Graphics - סקירה ומדריך
-
שלום לכולם.
רציתי לשתף ולהמליץ על ספרייה נחמדה של python בשם "turtle".
הספרייה הזו בעצם נותנת לנו את האפשרות לשלב קצת צבע בתוכנה שלנו - גרפיקה וממשק.ביצוע import
בשביל לייבא את turtle נכתוב בשורה הראשונה של הקוד שלנו:
import turtle
עכשיו נוכל להתחיל לעבוד עם turtle.
ועכשיו - קצת הסברים על הפקודות האפשריות:הפקודות ב-turtle
הקדמה ל-2 הפקודות הבאות:
שתי הפקודות הבאות ישתנו בהתאם לרצונכם: אם המטרה היא להדפיס טקסט על המסך (ראה פקודת write) הפקודות יכתבו עם הקידומת ".turtle", אבל אם ברצונכם לצייר עיגולים, מרובעים, ספירלות וכיו"ב הקידומת צריכה להיות ".turtle.Pen". במקרה האחרון, הייתי ממליץ לקצר את הדרך ולכתוב את הקידומת הנ"ל בתוך משתנה בשם "t" ואז פשוט לכתוב ".t" במקום הקידומת.פקודות left ו-right:
turtle.left(90) turtle.right(90)
הפקודות "left"/"right" מזיזות את ה"צב" שלנו לצד ימין/שמאל לפי מספר המעלות שהגדרנו בסוגריים.
פקודת forward:turtle.forward(90)
"forward" גורם ל"צב" להתקדם קדימה לפי הכיוון שבו הוא נמצא כעת, לפי מספר המעלות בסוגריים.
פקודת write:turtle.write("הטקסט שברצוננו להדפיס", font = ("Arial", 20, "bold"))
"write" - כפי שכבר הוזכר - היא פקודה שמדפיסה טקסט על המסך.
פקודת penup/pendown:turtle.penup()
"pen up" מֶרים את העט למעלה כך שלמשל אם נזיז את העט על ידי פקודת left/right ואז מדפיס טקסט על המסך על ידי forward ולא נרצה שבתזוזות הצב במסך יצטיירו קווים שחורים - נשתמש ב-pen up. להורדת העט - נכתוב pendown.
textinput/numtinput:turtle.textinput("הטקסט שיופיע מעל שורת הטקסט" ,"טקסט הכותרת")
"textinput/numinput" היא ממש כמו פקודת "input" רגילה - רק עם תוספת של ממשק! (ראה תמונה בספויילר בסוף הפוסט.)
"textinput" הוא עבור טקסט, ו"numinput" הוא עבור מספרים.
done:turtle.done()
הפקודה "done" תשאיר את המסך פתוח ולא תסגור אותו מיד לאחר שהוקבץ רץ וכל הפקודות בוצעו.
clearscreen:turtle.clearscreen()
"clearscreen" מנקה את המסך.
לסיום
זהו בגדול, כמובן שיש עוד פקודות ופונקציות והנושא רחב יותר אבל לא רציתי להאריך יותר מדי.
תוכלו לפנות אלי כאן או בפתיחת צ'אט איתי לשאלות, ו/או בקשות.ספויילר תמונות:
תכירו, זה turtle, הצב של פייתון: תצוגה של הפקודה "textinput": -
@ממענדל תודה על המדריך!
אני כבר הרבה זמן נהנה עם הספרייה הזאת.
משתף תוכנית שכתבתי:import turtle import math as m from time import sleep # יוצר פונקציות sin ו cos שמקבלות מעלות def dsin(n): return m.sin(n*m.pi/180) def dcos(n): return m.cos(n*m.pi/180) screen = turtle.Screen() t = turtle.Turtle() def f(): t.hideturtle() screen.tracer(0) g = min(screen.window_width(), screen.window_height())*0.4 #מגדיר את גודל הכדור dist = 3 #מגדיר את המרחק בין הקוים (במעלות) st = dist/50 #מגדיר את הזמן שלוקח לצייר כל קו t.up() for d in range(270, 89, dist*-1): for i in range(180): x, y = ((dsin(i)*dsin(d)))*g, (dcos(i))*g t.goto(x, y) t.down() t.up() screen.update() sleep(st) t.up() for d in range(270, 89, dist *-1): t.up() for i in range(180): x, y = (dcos(i))*g, (dsin(i)*dsin(d))*g t.goto(x, y) t.down() screen.update() sleep(st) turtle.done() return f()
סליחה על הקוד המבולגן, אשמח לשמוע את דעת הציבור