
הטקסט המלא של הדקות הראשונות בהרצאה «פרויקט מעשי ב-#C - תוכנת צייר - חלק 5» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אז בשיעור הקודם הצלחנו לצייר קווים. עכשיו נשאלת השאלה, איך אני יכול לצייר ולהזיז את העכבר באותו זמן? זה לצייר את כל מה, כל נקודה שהעכבר זז עליה, אני רוצה שיהיה שם בעצם קו.
אז אם נחשוב על זה, בעצם מה אנחנו רוצים? אנחנו רוצים, אז פה בעצם צריך להבין מה זה בעצם העכבר. העכבר, אולי אני אקח אפילו דוגמה, בוא נצייר פה משהו כזה ונסתכל מה בעצם צויר.
אני הזרקתי את העכבר ברצף אבל מה שצויר כאן זה קווים ישרים. אם נסמן את הנקודות של הקווים הישרים אז נראה שזו בעצם נקודה, זו נקודה, אלה כולם קווים ישרים. מנקודה לנקודה בעצם יש קו ישר.
וקווים ישרים. זאת אומרת, מהנקודה הזו לנקודה הזו אנחנו נקרא ל-draw line. איך נעשה את זה?
בכל פעם שהעכבר זז אנחנו מקבלים אירוע mouse move. באירוע mouse move אנחנו מקבלים את הנקודה החדשה של העכבר. אנחנו בכל פעם ניקח את הנקודה הקודמת שבה היה העכבר, ונצלם את הנקודה החדשה שבה נמצא העכבר.
ואז נעדכן את הנקודה הקודמת, את הנקודה הזו וזאת בשביל הקו הבא. בפעם הבאה שאנחנו נקבל אירוע Mouse Move זה יהיה כשנהיה בנקודה הזו ונקבל את הקואורדינטה הזו.
אז נמתח קו מהנקודה הקודמת שעדכנו אותה באיתרציה הקודמת ונמתח את הקו לנקודה החדשה. בפעם הראשונה ב-Mouse Down אנחנו נגדיר את הנקודה הראשונה.
ב-Mouse Down את הנקודה הראשונה, ובמאוס מוב נצייר מהנקודה הראשונה לנקודה החדשה ואז נעדכן את הנקודה הראשונה להיות הנקודה החדשה זה קצת מבלבל, אבל כשאתם עשו את זה בעצמכם תבינו יותר בואו נכתוב את זה, יפה עושה סירואים מתאימים, והנה מאוס מוב, דאבל קליק
קרס לנו הוויז'ואל סטודיו, אבל הנה עכשיו העלינו אחד חדש במאוס מוב אנחנו נרצה לצייר, קוד הזה אני מעביר למאוס מוב, במאוס אפ אנחנו יותר לא נצייר, אז אני רוצה למחוק את הפונקציה הזו, אין לי יותר צורך במאוס אפ, אבל בואו נשאיר את הפונקציה כרגע, כי אני לא רוצה למחוק, זה יגרום לבאגים ולכל מיני בעיות, אז נעזוב כרגע מחיקת פונקציה,
אז במאוס מוב אנחנו נצייר, בואו נראה איך זה נראה, מעניין, זה לא בדיוק מה שרצינו, מה בעצם קורה כרגע?
רגע, במאוס move אנחנו מציירים כל פעם לנקודה החדשה שאליה העכבר זז. אבל מאיפה אנחנו מציירים?
אנחנו תמיד מציירים בעצם מ-0,0. למה אנחנו מציירים מ-0,0? אנחנו אף פעם לא מעדכנים את x ואת y. רק במאוס down התקיימנו את x ואת y. אם שוב נריץ את התוכנית ושוב נצייר, נקבל את זה.
אם עכשיו אני אזוז לכאן, אלחץ כאן ואעשה סיבוב כאן, זה מה שקיבלנו. אני אזוז לכאן ואעשה סיבוב כאן, אז זה מה שקיבלנו.
למה זה קורה? כי כל פעם שאני עושה מאוס דאון מתעדכן ה-X וה-Y. ואז תמיד אנחנו מטעים מה-X וה-Y, שם לחצתי עם העכבר.
אז נוצרים המעגלים היפים האלה. אבל זה לא מה שרצינו. אנחנו רוצים לצייר ציור של יד חופשית ולא מעגלים. בעצם כשאנחנו עושים draw line אנחנו לא רוצים לצייר מהנקודה ש-mouse down, ששם האצבע שלי ירדה על הלחצן של העכבר. אני לא רוצה לצייר