
הטקסט המלא של הדקות הראשונות בהרצאה «פרויקט מעשי ב-#C - תוכנת צייר - חלק 3» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
בהרצאה הזו אני רוצה לעשות מה שעשינו בהרצאה הקודמת, בואו נפעיל את פיין, וזה דבר דומה, רק במקום לחשב, לא לחשב, במקום להסתכל על הנקודות שמופיעות כאן ופשוט להעתיק אותן לתוך הקוד שלנו, אני רוצה לחשב את הנקודות בצורה מדויקת.
זאת אומרת, בואו נמחק את זה, בהינתן שיש לי מסך בגודל מסוים, ותכף נראה את הרוחב ואת האורך של המסך שלנו, אבל בהינתן שהמסך שלנו הוא בגודל מסוים, בואו ננסה לעשות חישוב כך שה-X יהיה ברבעון השמאלי העליון של המסך, וה-Plus יהיה בתוך הרבעון הימני העליון של המסך.
אז אם אני רוצה לדעת מה הגודל של המסך שלי, אז יש לי פה עכבר ימני, פרופרטיז, סטינגס, פה אומר לי שכרגע אנחנו 1024 על 768 פיקסלים פיקסלים אלה היחידות שבהן אנחנו מציירים כן, הפונקציה draw line מקבלת את הקואורדינטות בפיקסלים לא בסנטרימטרים, לא באינצ'ים, בפיקסלים
זה מידת יחידה של מסך אוקיי, אז 1024 זהו רוחב המסך ו-768 זהו אורך המסך, או גובה המסך אבל שתוכנית ראסה אין לה את כל הרוחב והאורך הזה זמינים לדוגמה פיינט בראש יש לה פה למעלה את האזור הכחול ויש לה פה את האזור האפור ויש לה פה את האזור האפור כהה ורק פה אני מסתכל למטה מצד ימין פה מתחיל
אחד אחד אם אני אעזוב טיפה שמאלה וטיפה למעלה אפס אפס פה מתחיל האפס אפס של תוכנית פיינט של מערכת ההפעלה חלונות זאת אומרת זה לא יהיה בדיוק אם נחשוב על התוכנית שאנחנו הולכים לכתוב אז האפס אפס לא יהיה בדיוק בפינה השמאלית עליונה של המסך זה יהיה בפינה השמאלית
עליונה של החלון שלנו. טוב בכל מקרה מה אנחנו רוצים לעשות? אז בואו נגיד שהציור הזה זה 1024 לרוחב על 768 לאורך בואו אולי נרשום את זה זה נרשום את זה כמו מהנדסים, עושים חץ ככה עושים חץ ככה, ורושמים פה אלף עשרים וארבע אלף עשרים וארבע זה אלף עשרים וככה זה אלף עשרים וארבע, והעורך גם פה נצייר קו שכזה
וראש חץ פה וראש כאן וראש חץ פה וראש חץ כאן עכשיו את זה אני רוצה לרשום לאורך אבל אני לא יודע על כזה פיצ'ר כזו יכולת של pain brush לצייר לאורך פה אני צריך לרשום פה 768 בואו נשמור את זה על הדסקטופ נקרא לזה אחד יפה אז אלה הקואורדינטות של המסך שלי עכשיו אם אני אחלק את המסך שלי פה באמצע אז בוא נביא את ה-1024 הזה שלא מזיק לו
בואו נמתח קו אולי קו קצת אפור בדיוק כאן אתם רואים יש פה בדיוק מתחתי נקודה אני מותח קו מהנקודה אל הנקודה מהנקודה הזו לנקודה הזו זה נראה לי כן פספסתי את זה בואו נעשה רגע קנטרון z בואו נעשה עוד פעם מכאן נראה לי יותר טוב הפעם לכאן יפה אפשר להגיד שזה בדיוק אמצע המסך שלנו. ומכיוון שאנחנו רוצים לשים את ה-X בריבון העליון שמאלי,
אז אנחנו נרצה בערך מהנקודה הזו עד לנקודה הזו למתוח קו, אבל אני רוצה לחשב בצורה מתמטית באמת מה הקואורדינטור. אז אם חציתי פה את המסך שלי, אז 1024 חלקי 2, פה נשאר לי 512. זה בעצם 512, ובואו גם פה נשים קו שמחלק את המסך ל-2, לאורך, יפה, בואו רק נרשום שזה 512 אז אני ארשום פה 512
ומהנדסים כשהם רוצים להגיד שזה 512 הם לוקחים קו נטוי וחותכים פה וחותכים כאן, מספיק לחתוך לא חייבים לעשות ראש חטא, זה אומר שזה 512 ואילו זה זה 768 חלקי 2 אז זה 350 384 זאת אומרת שזה 384 אז גם פה נרשום 384 384 יפה מאוד גם פה נעשה קו חותך אז איפה אנחנו רוצים את
הx שלנו בואו אולי ניקח קו אדום אנחנו רוצים את הx בערך כאן מה זה אומר בערך כאן בוא נגיד שאני לא רוצה למתוח קו ממש מ-0,0 עד ל-512,384, אני יכול אבל זה יהיה ממש למתוח את זה מהקצה אל הקצה ומ-0,512 עד ל-384, אתם יודעים מה?
בואו דווקא כן נמתח קווים מהנקודה הזו עד לנקודה הזו ומהנקודה הזו עד לנקודה הזו זה גם תהיה תרגולת טובה אז בואו נריץ visual studio, create project, c-sharp, windows, windows applications, על הדסקופ זה יקרא Geometricalizations Sample ונגיד לו אוקיי,
נחכה שהוא יירגע, כשאני אומר שאני מחכה שהוא יירגע זה אומר שאני מחכה שה-CPU יצנח למספר נמוך, ארבע זה מספר חזיר, יפה, בואו שוב, בואו נצייר אני רוצה למתוח קו מ-0,0 עד לנקודה הזו מבחינת ה-X זה ציר ה-X, ימינה ושמאלה זה ציר ה-X, 512
מבחינת ה-Y זה ציר ה-Y, 384 אז מ-0,0 ל-512, 384 אז ניגש לאירועים של הטופס, ניגש ל-MouseDone ו-graphics-g שווה ל-create-graphics-g.draw-line-pens-blue 0,0 ה-x2 הוא 512 וה-y2 הוא 384 יפה בואו ננסה להריץ את זה וקליק
בואו נגדיל את זה למקסימום ושוב קליק יפה, מ-0,0 זה נראה בסדר, שוב החישוב שלנו לקח בחשבון שאנחנו בעצם מציירים מ-0,0 של המסך אבל אנחנו נתקענו עם הכותרת העליונה, דרך אגב אפשר להסתיר את הכותרת העליונה, בואו ננסה להסתיר את הכותרת העליונה של הטופס, נלך ל-properties וב-f זה h, קיפה למעלה,
פורום בורדר סטייל, הטופס גבול סטייל, הסטייל של הגבול של הטופס אז אני יכול להגיד לו נון, בלי, אז הוא בלי אבל אם אני אריץ אותו בלי כלום, אז גם אי אפשר להזיז אותו וגם אין לי שום דרך בוא נעשה אלט רווח, כן גם אלט רווח לא עוזר, אלט רווח אם ניגש לויז'ו סטודיו ונגיד לו אלט רווח אלט רווח מקפיץ לי את
התפריט, זה נקרא הסיסטם מניו, תפריט המערכת אם אני עושה פה עכבר ימני זה תפריט המערכת אם אני לוחץ פה זה תפריט המערכת או אם אני עושה Alt רווח אז גם קופץ תפריט המערכת תפריט המערכת מאפשר לי לבחור את move אם טופס הוא לא מקסימייז ואני עושה פה קליק אז יש לי אפשרות לעשות move ואז אני יכול עם החיצים
ואז עם העכבר גם להזיז את הטופס אבל כשאין לי שום גבולות הפורם בורדר סטייל הוא נון אז אין לי גבולות בואו נקטין רגע את הוויז'ול סטודיו ואת הפייג' קשה בכלל להאמין שזה תופס, לרוב שאין לו גבולות בעצם.
בואו נראה אם נסגור אותו אפשר אלטף ארבע או לפחות נסגור אותו עם אלטף ארבע אפשר. אלטף ארבע תוגר חלונות אז אני רוצה שהוא יתפרץ על כל המסך מיד בתחילת הריצה אז בואו נראה, או Windows State Determines the Initial Visual State of the Form כרגע הוא Normal, אני אבחר פה Maximize כך שכשהוא מתחיל לרוץ הוא מיד מתפרס על כל המסך
הרד, מצוין, קליק, עכשיו יש לנו ממש אפליקציה גרפית יפה, אז ציירנו מ-0,0 עד למרכז הנסך הדבר הבא זה לצייר מהנקודה הזו עד לנקודה הזו בואו נסגור את זה, Alt F4, מצוין בואו נחזור לחישובים שלנו אז אנחנו רוצים לצייר מהנקודה הזו מבחינת ה-eak מדובר פה על 512
ופה מראה לי זה 512 מבחינת ה-y מדובר פה על 0 אז זה 512-0 אז מ-512-0, תכף נראה מה זה כאן אז בואו נגיד לו מ-512-0 ניגש לקוד נשכפל את השורה הזו, אני רוצה לכתוב מחדש g.drawline.pens.blue x הוא 512 ה-y הוא 0 בואו רק נגיד לו overload מספר 4 אז x1 הוא 512 y1 הוא 0 יפה מה לגבי x2 הנקודה השנייה
בנקודה השנייה זו הנקודה השנייה x הפעם הוא 0 נכון ה-x לא זז x ימינה, אמרנו שהx זה הציר הימני, אולי נסמן את זה איכשהו, בואו נגיד לכם כאן אני אכתוב x גדול ואני אוסיף זה הכיוון זה x, יותר נכון x הוא גם ימינה וגם שמאלה, זה כיוון של x לעומת y זה y,