|
22-04-2007, 13:52
|
|
|
חבר מתאריך: 19.03.07
הודעות: 13
|
|
הפרויקט יצא לדרך
הפרויקט יצא לדרך
פרויקט יצירת 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
|
|