לוגו/מערכת הקואורדינטות

מתוך ויקיספר, אוסף הספרים והמדריכים החופשי

מערכת הקואורדינטות[עריכה]

נוסף על "גרפיקת הצבים" מאפשרת שפת לוגו תיכנות גרפי גם באמצעות מערכת קואורדינטות. מערכת זו מאפשרת לנו להתייחס לנקודות ספציפיות במסך בלי להתחשב במיקומו של הצב ביחס אליהם. במערכת זו, נקודת ההתחלה של הצב מסומנת כ-0,0 ומכונה "ראשית הצירים". הנקודה הנמצאת בדיוק מתחתיה במסך מסומנת 1-,0. הנקודה הנמצאת בדיוק מעליה היא 0,1. מימין לראשית הצירים נמצאת הנקודה 1,0 ומשמאל לה נמצאת הנקודה 1,0-. ככל שנקודה נמצאת קרוב יותר לאחת הפינות, כך ערכי הקואורדינטות שלה יהיו מספרים גדולים יותר. לגבי נקודות הנמצאות ברבע הימני העליון של המסך, שתי הקואורדינטות הן מספרים חיוביים. לגבי נקודות הנמצאות ברבע השמאלי העליון של המסך קואורדינטת x היא שלילית ולגבי נקודות הנמצאות ברבע הימני התחתון של המסך קואורדינטת x היא חיובית וקואורדינטת y היא שלילית. לגבי נקודות ברבע השמאלי התחתון של המסך שתי הקואורדינטות הן מספרים שליליים.

בירור מיקומו של הצב[עריכה]

  • הפקודה pos היא פקודת לוגו שהפלט שלה הוא מיקומו הנוכחי של הצב. מידע זה ניתן כרשימה בת שני ערכים.

כאשר הצב נמצא ב"ביתו", בראשית הצירים, הפקודה print pos תדפיס למסך הפקודות 0 0. כאשר הצב נמצא בנקודות אחרות על המסך, פקודה זו תדפיס צמדי מספרים אחרים. בכל צמד כזה, האיבר הראשון (השמאלי) ברשימה הוא קואורדינטת ה-x , והאיבר השני הוא קואורדינטת ה-y . אם נשתמש בפקודה show pos, המספרים יודפסו בתוך סוגריים מרובעים. זו הצורה המקובלת בלוגו לשם הצגת מידע מטיפוס "רשימה" (לזאת נגיע בהמשך).

  • הפקודות xcor ו-ycor פולטות את קואורדינטות ה-x וה-y בהתאמה. גם כאן הדרך להשתמש בהן היא בסמוך לפקודת הצגה - print או show.
  • תרגיל:
בידקו מהן הקואורדינטות של ארבע פינות המסך!

הזזת הצב לנקודה מסוימת[עריכה]

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

  • [setpos [x y: את האותיות שבין הסוגריים יש להחליף בשני המספרים המתאימים לנקודה שברצוננו לשלוח אליה את הצב.
נסו את הפקודה [setpos[300 300.
  • setx x: כאן עלינו להחליף את x במספר מתאים, והצב ינוע בתנועה אופקית לנקודה עליה מצביעות קואורדינטת x החדשה ו y הישנה.
עכשיו הוסיפו את הפקודה setx -300.
  • sety y: אותו הדבר לגבי y. הפעם ינוע הצב אנכית כאשר קואורדינטת x שלו נשארת קבועה.
הוסיפו גם את הפקודה sety -300.
  • home: פקודה זו מחזירה את הצב לראשית הצירים (קואורדינטה 0,0).
כיצד נשלים את צורת המשולש שציירנו?

כפי שראיתם, הצב אינו "קופץ" אל הנקודה המבוקשת, אלא נע אליה בקו ישר ומצייר את מסלולו. כדי לשנות זאת ניתן לצב את הפקודה penup (ובקיצור pu).

קביעת זוית הראש[עריכה]

גם את זוית הראש - הזווית אליה מצביע קודקוד הצב והכיוון אליו יתקדם הצב בעקבות הפקודה forward - אנחנו יכולים לקבוע באופן לא-יחסי. כדי לברר מה זווית הראש נשתמש בפקודה heading. פקודה זו פולטת מספר המציין את זווית הראש הנוכחית של הצב, ואשר ניתן להדפיס אותו באמצעות הפקודות print ו-show. הזווית ניתנת במעלות, ובהתאם ל"חוקי לוגו", כלומר, זווית הראש היא 0 כאשר הצב "מסתכל" כלפי מעלה, לכוון החיובי של ציר y. (לפי מערכת הזויות המקובלת, זוית 0 היא דווקא כאשר הצו פונה ימינה, לכיוון החיובי של ציר x.) זוית הראש גדלה ככל שהצב מסתובב ימינה, וגם כאן חוקי לוגו שונים מהחוקים הרגילים. (לפי הכללים הנהוגים, הזוית אמורה היתה לגדול ככל שהצב פונה שמאלה, דווקא.) כאשר הצב פונה בכיוון החיובי של ציר x (כמו מחוג המצביע על השעה שלוש) הזווית היא 90 מעלות. כשהוא פונה בכיוון השלילי של ציר y (השעה שש) הזווית היא 180 מעלות, וכשהוא פונה בכיוון השלילי של ציר x (השעה תשע) הזווית היא 270 או -90.
הפקודה setheading או בקיצור seth מקבלת מספר, וקובעת את זוית הראש של הצב בהתאם לו.


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