נשלח בתאריך: 22 April 2007 בשעה 14:23 | | IP רשוּם
|
|
|
|
הפרויקט יצא לדרך פרויקט יצירת HELP ל VISUAL BASIC בעיברית
נושא :פונקציות גרפיות דף מספר-1 מותאם לגירסא-2005
הקדמה-כדי להשתמש בפונקציות הגרפיות של 2005 שיובאו כאן צריך קודם לעבור למצב גרפי לכו לעמוד הקוד של הטופס (או על ידי דאבל קליק על הטופס או שתבחרו ב SOLUTION EXPLORER את הטופס--FORM1.VB לחצן ימני ובחרו
View Code לחצו כפתור ימני על Form1.vb . זה יביא אותכם לעמוד הקוד של הטופס. כעת תראו למעלה 2 תיבות: על השמאלית כתוב Form1 ועל הימנית
"(Declarations)". התיבה השמאלית נקראת תיבת "שם המחלקה" (Class Name) והימנית נקראת תיבת "שם השיטה" (Method
Name). לחצו על החץ שליד תיבת "שם המחלקה" (התיבה שבה כתוב Form1), ובחרו (Form1 Events). כעת לחצו על החץ שליד תיבת "שם השיטה"
(התיבה שבה כתוב "(Declarations)", ובחרו Paint. זה יצור בעבורכם פרוצדורה בשם Form1_Paint.
Private Sub Form1_Paint(ByVal sender As Object, _ ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
End Sub
את כל הפונקציות הגרפיות שיובאו בהמשך יש לשים בתוך הפרצוצדורה הזאת בלבד
ציור קו
(e.Graphics.DrawLine(Pens.Black, x1, y1, x2, y2
בתוך הסוגריים של הפונקציה ישנם חמשה מרכיבים הראשון PENS.BLACK זהו העט שאיתו VB ישתמש כדי לצייר את הקו אתם יכולים להחליף את הצבע כרצונכם זוג הקורדינאטות הראשונות הם הנקודה הראשונה בקו וזוג הקורדינאטות השניות הם הנקודה האחרונה בקו זה יכול להיות מספר וזה יכול להיות משתנה מסוג INTEGER
ציור מרובע
(e.Graphics.DrawRectangle(Pens.Brown, x, y, WIDTH, HIGH ׁ
בתוך הסוגריים של הפונקציה ישנם חמשה מרכיבים הראשון PENS.BROWN זהו העט שאיתו VB ישתמש כדי לצייר את הקו אתם יכולים להחליף את הצבע כרצונכם לאחר מכן ישנה קורדינאטה שמורכבת משני מספרים מספרים אלו הם לא מרכז בריבוע (נקודת מפגש האלכסונים ) אלא מספרים אלו הם הנקודה השמאלית העליונה של המרובע שממנה VB תתחיל לצייר את המרובע WIDTH=רוחב המרובע HIGH=אורך המרובע אם תציבו רוחב ששוה לגובה VB תצייר ריבוע
ציור אליפסה\עיגול
(e.Graphics.DrawEllipse(Pens.BLUE, x, y, WIDTH, HIGH
בתוך הסוגריים של הפונקציה ישנם חמשה מרכיבים הראשון PENS.BLUE זהו העט שאיתו VB ישתמש כדי לצייר את הקו אתם יכולים להחליף את הצבע כרצונכם לאחר מכן ישנה קורדינאטה שמורכבת משני מספרים מספרים אלו הם לא מרכז האליפסה X=הנקודה הכי שמאלית באליפסה Y=הנקודה הכי עליונה באלפסה WIDTH=רוחב האליפסה HIGH=אורך האליפסה אם תציבו רוחב ששוה לגובה VB תצייר עיגול
ציור חלק ממעגל
התוצאה המתקבלת היא קשת
(e.Graphics.DrawArc(Pens.Blue,X, Y, WIDTH, HIGH, START-ANGLE, SWEEP-ANGLE
בתוך הסוגריים של הפונקציה ישנם שבעה מרכיבים הראשון PENS.BLUE זהו העט שאיתו VB ישתמש כדי לצייר את הקו אתם יכולים להחליף את הצבע כרצונכם לאחר מכן ישנה קורדינאטה שמורכבת משני מספרים מספרים אלו הם לא מרכז האליפסה X=הנקודה הכי שמאלית באליפסה Y=הנקודה הכי עליונה באלפסה WIDTH=רוחב האליפסה HIGH=אורך האליפסה START-ANGLE-הזויית במעלות (מתוך 360 מעלות של המעגל\אליפסה) שממנה נתחיל לצייר את קשת SWEEP-ANGLE-מכמה מעלות תהיה מורכבת הקשת --אם תכתבו 90 תקבלו קשת של רבע עיגול אם תכתבו 180 תקבלו קשת של חצי עיגול
יש לדעת שאת הזווית יש VB מחשבת כנגד כיוון השעון לכן וכמעגל הפוך ---לכן השעה 12 שאצלנו נחשבת המעלה ה90 ב VB היא 270 והשעה 6 שאצלנו היא 270 ב VB היא 90 כמו כן את SWEEP-ANGLE השפה מציירת כנגד כיוון השעון כך שאם תירצו לציירקשת שהיא הרבע הימני העליון של המעגל ה START ANGLE צריך להיות 270 וה SWEEP-ANGLR צריך להיות 90 ואם תירצו את הרבע הימני התחתון ה START-ANGLE
צריך להיות 0 וה SWEEP-ANGLE צריך להיות 90 אם תציבו רוחב ששוה לגובה VB תצייר קשת של עיגול
ציור פרוסה ממעגל\אליפסה התוצאה המתקבלת היא ציור של חלק ממעגל שדומה לפרוסת עוגה (e.Graphics.DrawPie(Pens.Blue, x, Y, WIDTH, HIGH, START-ANGLE, SWEEP-ANGLE
בתוך הסוגריים של הפונקציה ישנם שבעה מרכיבים הראשון PENS.BLUE זהו העט שאיתו VB ישתמש כדי לצייר את הקו אתם יכולים להחליף את הצבע כרצונכם לאחר מכן ישנה קורדינאטה שמורכבת משני מספרים מספרים אלו הם לא מרכז האליפסה X=הנקודה הכי שמאלית באליפסה Y=הנקודה הכי עליונה באלפסה WIDTH=רוחב האליפסה HIGH=אורך האליפסה START-ANGLE-הזויית במעלות (מתוך 360 מעלות של המעגל\אליפסה) שממנה נתחיל לצייר את הפרוסה SWEEP-ANGLE-מכמה מעלות תהיה מורכבת הפרוסה --אם תכתבו 90 תקבלו פרוסה של רבע עוגה אם תכתבו 180 תקבלו פרוסה של חצי עוגה VB תצייר קו ממרכז המעגל אל ה START ANGLE ואז תצעד משם כנגד כיוון השעון את מספר המעלות שצינתם ובסופם תצייר קו בחזרה אל מרכז המעגל יש לדעת שאת הזווית יש VB מחשבת כנגד כיוון השעון לכן וכמעגל הפוך ---לכן השעה 12 שאצלנו נחשבת המעלה ה90 ב VB היא 270 והשעה 6 שאצלנו היא 270 ב VB היא 90 כמו כן את SWEEP-ANGLE השפה מציירת כנגד כיוון השעון כך שאם תירצו לצייר פרוסת עוגה שהיא הרבע הימני העליון של המעגל ה START ANGLE צריך להיות 270 וה SWEEP-ANGLR צריך להיות 90 ואם תירצו את הרבע הימני התחתון ה START-ANGLE
צריך להיות 0 וה SWEEP-ANGLE צריך להיות 90 אם תציבו רוחב ששוה לגובה VB תצייר פרוסה של עיגול
ציור פוליגונים--צורה מרובת צלעות
(E.Graphics.DrawPolygon(Pens.Aqua ,ARRAY OF POINTS
זוכרים את הערכות ציור לילדים שבהם היה דף לבן ריק ובו מספרים מ 1 עד 50 והיינו צריכים למתח קו בין המספרים לפי הסדר ואז היינו מקבלים ציור זה מה ש DRAWPOLIGON עושה בתוך הסוגריים של הפונקציה ישנם שבעה מרכיבים הראשון PENS.AQUA זהו העט שאיתו VB ישתמש כדי לצייר את הקו אתם יכולים להחליף את הצבע כרצונכם ARRAY OF POINTS-כדי שהפונקציה תדע מאיזו נקודה לאיזו נקודה עליה למתח קו אי אפשר להציב בה ישר את הקורדינאטות אלא צריך קודם ליצור את הנקודות שמכילות את הקורדינאטות עלידי שימוש במשתנה מסוג POINT
מומלץ לתת לנקודות את השמות POINT1,POINT2,POINT3 והלאה כדי שנוכל להבין מה התוכנית עושה מכריזים על הנקודות ככה (0,0)DIM POINT1 AS NEW POINTׂ (100,20)DIM POINT2 AS NEW POINT (120,80)DIM POINT3 AS NEW POINT (150,50)DIM POINT4 AS NEW POINT (100,40)DIM POINT5 AS NEW POINT
וכן הלאה כפי מספר הצלעות שאתם רוצים ליצור במצולע שלכם VB יחבר לבד תמיד אוטומטית בין הנקודה האחרונה והראשונה ובכך תקבלו תמיד מצולע סגור לאחר שיצרתם את הנקודות יש לשים את כולם בתוך מערך מסוג POINT שמצהירים עליו כך {Dim poLypoint As Point() = {point1, point2, point3, point4, point5
POLYPOINT הוא סתם שם שאני בחרתי אפשא לבחר בכל שם אחר וכעת לאחר שהצבנו ערכים במערך מציבים בפונקציה את שם המערך
(E.Graphics.DrawPolygon(Pens.Aqua ,poLypoint
ישנה דרך נוספת להציב ערכים בתוך מערך מסוג POINT והיא ללא הצהרה מוקדמת על משתנים מסוג POINT אלא פשוט ישר לפתוח מערך כזה ולהציב לתוכו כך Dim yoni2 As Point() = {New Point(0, 0), New Point(100,
100), New Point(100, 0)}
מילוי פוליגונים
הפונקציה DRAWPOLYGON ציירה מצולע רק ואם רוצים לצייר מצולע שתוכנו מלא צבע יש להשתמש בפונקציה FILLPOLYGON היא עובדת בדיוק כמו DRAWPOLYGON מבחינת הנתונים שצריך להזין לתוכה אלא שכדי לבחור את הצבע לא משתמשים בפקודה PENS אלא בפקודה BRUSHES (e.Graphics.FillPolygon(BRUSHES.RED, ARRAY OF POINTS
ARRAY OF POINTS-כדי שהפונקציה תדע מאיזו נקודה לאיזו נקודה עליה למתח קו אי אפשר להציב בה ישר את הקורדינאטות אלא צריך קודם ליצור את הנקודות שמכילות את הקורדינאטות עלידי שימוש במשתנה מסוג POINT
מומלץ לתת לנקודות את השמות POINT1,POINT2,POINT3 והלאה כדי שנוכל להבין מה התוכנית עושה מכריזים על הנקודות ככה (0,0)DIM POINT1 AS NEW POINTׂ (100,20)DIM POINT2 AS NEW POINT (120,80)DIM POINT3 AS NEW POINT (150,50)DIM POINT4 AS NEW POINT (100,40)DIM POINT5 AS NEW POINT
וכן הלאה כפי מספר הצלעות שאתם רוצים ליצור במצולע שלכם VB יחבר לבד תמיד אוטומטית בין הנקודה האחרונה והראשונה ובכך תקבלו תמיד מצולע סגור לאחר שיצרתם את הנקודות יש לשים את כולם בתוך מערך מסוג POINT שמצהירים עליו כך {Dim poLypoint As Point() = {point1, point2, point3, point4, point5
POLYPOINT הוא סתם שם שאני בחרתי אפשא לבחר בכל שם אחר וכעת לאחר שהצבנו ערכים במערך מציבים בפונקציה את שם המערך
(E.Graphics.FILLPolygon(BRUSHES.RED ,poLypoint
ציור מספר קויים פונקציה זאת מציירת מספר קווים כאשר כל קו מתחיל בנקודה שבה הקו הקודם נגמר כך שבסוף מקבלים מצולע לא סגור ההבדל בין הפונקציה הזאת לבין הפונקציה לציור פוליגון זה שפונקצית ציור פוליגון אוטומתית תקשר בין סוף הקו האחרון לתחילת הקן הראשון כך שתמיד יתקבל בה מצולע סגור (e.Graphics.DrawLines(Pens.Black, points
בתוך הסוגריים של הפונקציה ישנם שבעה מרכיבים הראשון PENS.BLACK זהו העט שאיתו VB ישתמש כדי לצייר את הקו אתם יכולים להחליף את הצבע כרצונכם POINTS- שמו של המערך מסוג POINT שבו שמתם את הקורדינאטות ישנם שני אפשרויות ליצור כזה מערך 1-ליצור מספר משתנים מסוג POINT ואז לשים אותם בתוןך מערך מסוג POINT לדוגמא-
מומלץ לתת לנקודות את השמות POINT1,POINT2,POINT3 והלאה כדי שנוכל להבין מה התוכנית עושה מכריזים על הנקודות ככה (0,0)DIM POINT1 AS NEW POINTׂ (100,20)DIM POINT2 AS NEW POINT (120,80)DIM POINT3 AS NEW POINT (150,50)DIM POINT4 AS NEW POINT (100,40)DIM POINT5 AS NEW POINT ואז מציבים אותם בתוך מערך
{Dim LINESpointS As Point() = {point1, point2, point3, point4, point5
וכעת לאחר שהצבנו ערכים במערך מציבים בפונקציה את שם המערך
(E.Graphics.DrawLINES(Pens.Aqua ,LINESpointS
ישנה דרך נוספת להציב ערכים בתוך מערך מסוג POINT והיא ללא הצהרה מוקדמת על משתנים מסוג POINT אלא פשוט ישר לפתוח מערך כזה ולהציב לתוכו כך Dim yoni2 As Point() = {New Point(0, 0), New Point(100,
100), New Point(100, 0)}
ציור מספר מרובעים פונקציה זאת מציירת מספר ריבועים בפעם אחת
(e.Graphics.DrawRectangles(Pens.Red, ARRAY OF RECTANGELS
בתוך הסוגריים של הפונקציה ישנם שבעה מרכיבים הראשון PENS.RED זהו העט שאיתו VB ישתמש כדי לצייר את הקו אתם יכולים להחליף את הצבע כרצונכם
ARRAY OF RECTANGELS- זהו מערך שמכיל בתוכו משתנים מסוג RECANGELS כל משתנה מסוג RECTANGELS מכיל בתוכו 4 נתונים הראשון והשני הם הקורדינאטה של הפינה השמאלית העליונה שממנה יתחיל הציור של המרובע השלישי מכיל את הרוחב של המרובע והרביעי מכיל את הגובה של המרובע אפשר קודם כל לפתח מספר משתנים מסוג RECTANGEL ואז להציב אותם במערך מסוג כזה (Dim r1 As New Rectangle(0, 0, 100, 100 (Dim r2 As New Rectangle(0, 0, 80, 80 (Dim r3 As New Rectangle(0, 0, 50, 50 (Dim yoni1 As Rectangle() = {r1, r2, r3 (e.Graphics.DrawRectangles(Pens.Red, yoni1
ואפשר גם להציב ישר ערכים לתוך מערך כזה Dim rects As Rectangle() = {New Rectangle(0, 0, 100, 200), _ New Rectangle(100, 200, 250, 50), _ New Rectangle(300, 0, 50, 100)} מפאת אורכה של השורה שמנו את הסימן השמור _ קו תחתון הקו התחתון אומר למהדר של VB להתיחס לשורה הבאה כאל המשך של השורה הנוכחית ולא להתיחס אליה כאל שורת קוד חדשה
(e.Graphics.DrawRectangles(Pens.Red, rects
מילוי מלבנים ואליפסות הפרוצדורות DrawRectangle ו- DrawEllipse מציירות מלבן ריק ואליפסה ריקה כדי לצייר מלבן מלא ואליפסה מליאה, נשתמש בפרוצדורות FillRectangle ו- FillEllipse . הפרמטרים שהן מקבלות זהות ל- DrawRectangle ו- DrawEllipse, חוץ מהבדל אחד: במקום לקבל "עט" Pen שבה יש לצייר את המלבן או האליפסה, אנו מעבירים להן "מברשת" Brush שבה יש למלא את המלבן או האליפסה
מילוי אליפסה
(e.Graphics.FillEllipse(Brushes.Indigo, x, y, WIDTH, HIGH
בתוך הסוגריים של הפונקציה ישנם חמשה מרכיבים הראשון BRUSHES.Indigo זהו הצבע שאיתו VB ישתמש כדי למלאות את האליפסה אתם יכולים להחליף את הצבע כרצונכם לאחר מכן ישנה קורדינאטה שמורכבת משני מספרים מספרים אלו הם לא מרכז האליפסה X=הנקודה הכי שמאלית באליפסה Y=הנקודה הכי עליונה באלפסה WIDTH=רוחב האליפסה HIGH=אורך האליפסה אם תציבו רוחב ששוה לגובה VB תצייר עיגול
מילוי מרובע
(e.Graphics.FillRectangle(Brushes.Black,X, Y, WIDTH, HIGH בתוך הסוגריים של הפונקציה ישנם חמשה מרכיבים הראשון BRUSHES.Indigo זהו הצבע שאיתו VB ישתמש כדי למלאות את המרובע אתם יכולים להחליף את הצבע כרצונכם לאחר מכן ישנה קורדינאטה שמורכבת משני מספרים מספרים אלו הם לא מרכז בריבוע (נקודת מפגש האלכסונים ) אלא מספרים אלו הם הנקודה השמאלית העליונה של המרובע שממנה VB תתחיל לצייר את המרובע WIDTH=רוחב המרובע HIGH=אורך המרובע אם תציבו רוחב ששוה לגובה VB תצייר ריבוע
להערות ולהצטרפות לצוות הפרויקט או להירשם לקבלת עידכונים yoni333@gmail.com
|