
ArrayList כדי לשמור אותן. מוסיפים using System.Collections לקובץ.DrawLine.IndexOutOfRange בסוף הלולאה.הטקסט המלא של הדקות הראשונות בהרצאה «פרויקט מעשי ב-#C - תוכנת צייר - חלק 10» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
טוב, אז בשיעור הקודם למדנו לצייר קו שיודע לשחזר את עצמו בכל מצב. הדבר הבא זה גם שנוכל לשחזר כל קו שאנחנו מציירים בזמן אמת. איך נעשה את זה?
אז בעצם מה שאנחנו רוצים זה לשמור את הקווים שאנחנו מציירים. מה זה בעצם קו? קו זה בעצם רצף של נקודות. אז נשתמש ב-ArrayList כדי לשמור את הרצף של הנקודות של הקו.
אז בואו נעשה את זה. אז איך נעשה את זה? ב-MountsDown אנחנו מעדכנים את X ואת Y. אבל בעצם מה שאנחנו רוצים זה לשמור קו. בשיעור הבא אנחנו גם נשמור קווים.
כרגע אני רק רוצה לשמור קו אחד. אז מה שאני רוצה זה להגדיר קו. אני מגדיר ArrayList עם ה"צ'ופצ'יק", יעזור לנו ונוסיף לו את ה-Using. הרייליסט לין שווה לניו הרייליסט.
תנו עכשיו הרייליסט חדש, אנחנו קוראים לו לין. במהוס דאון אני אשמור כבר את הנקודה הראשונה. איך נשמור נקודה?
אנחנו נגדיר פוינט p שווה לניו פוינט וניתן לה שתי שדות, את x ואת y. ואז נוסיף את p ללין. נגיד לליין, תוסיף רק לך את p.
עכשיו לליין יש את p. במאוס move אנחנו נוסיף שוב את הנקודות שעכשיו הצטרפו, לפני ש... או אחרי שנעדכן אותן.
אפשר אפילו לקחת פשוט את השתי שורות האלו ולשכבד אותן לכאן. רק נביא אותן קדימה קצת. יפה. מה אנחנו בעצם אומרים?
אנחנו אומרים שאחרי ש-e קיבלנו ב-e את x ואת y והתקרנו את x ואת y, אנחנו מייצרים נקודה מ-x ו-y ומוסיפים את הנקודה החדשה ל-line. אוקיי, אז יש לנו את כל הנקודות בקו.
עכשיו, בפיינט אנחנו צריכים לצייר את כל הקוויבים האלו. איך נעשה את זה? נעשה את זה ככה.
each point p in line ונקרא ל-e נקודה graphic אבל e נקודה graphic אנחנו נשתמש הפעם ב-draw line שמקבלת שתי נקודות ואנחנו רוצים לתת לה שתי נקודות אז אני יכול אומנם לתת לה את px ואת py בתור הנקודה בתור הקואורדינטה הראשונה בכל איטרציה אבל מה הקואורדינטה השנייה?
אז האמת היא ש-Four is לא כל כך מתאים לנו. בואו נשתמש ב-Four. את הקטע קוד הזה אני אעביר בינתיים לכאן. 4 int i שווה לאפקט כל עוד i קטן מline.count מקדם את i.
נגדיר עכשיו מסוג פוינט p1 את הנקודה הראשונה ב-line במקום ה-i. ואת פי שתיים במקום ה-I ועוד אחת, וניתר מפי אחת עד לפי שתיים.
מה אנחנו בעצם אומרים פה? אנחנו אומרים, אולי נעבור למסע מלא, אנחנו אומרים, אנחנו עדיין רואים את כל הקוד, אולי נצמצם את הפונקציה של המהוס-אפ בינתיים, ככה.
אז יש לנו את x, y, יש לנו הרייליס שנקרא line, במרס דאון אנחנו שומרים את x ואת y, טוב, זה בשביל המהוס מוב הראשון. המהוס מוב הראשון ירצה לצייר מהx y עד ל-e נקודה x, מהx y עד ל-e נקודה x, e נקודה y.
אחרי זה המהוס מוב גם יעזקן את x ואת y. אוקיי, אז x ו-y חשובים מאוד בשביל לצייר במהוס מוב, אבל בנוסף על ההתכוננות למהוס מוב, אנחנו גם כבר מתכוננים ל-paint.
ב-paint אנחנו נרצה לצייר מהנקודה הראשונה שבה mouse-down התרחש. אז אנחנו נגדיר point p שווה new point, ניצור נקודה מ-x ו-y ונוסיף את הנקודה הזו למערך line.
זו הנקודה הראשונה. ב-mouse-move פה אנחנו מקבלים עכשיו את הנקודה השנייה. e נקודה x ו-e נקודה y זה כבר הנקודה השנייה.
X ו-Y זה כבר הנקודה השנייה. זו אמנם הנקודה הראשונה של המאוס מוב מאז המאוס דאון, אבל זו הנקודה השנייה במערך. אז X-Y עכשיו זו הנקודה השנייה במערך, ניצור מ-X-Y נקודה ונוסיף את הנקודה הזו לליין.
באירוע פיינט מה אנחנו עושים? באירוע פיינט