تبليغاتX
گروه آموزشی رایانه شهرستان دیر - قدم به قدم برای رسم نمودار های ریاضی

همانطور که می دانید نمودار از  مجموعه ای از نقاط تشکیل شده است. لذا با کنار هم گذاشتن این نقاط می توان نمودارهای با اشکال زیبا رسم نمود.  اگر بخواهیم یک نقطه  را در مختصات دو بعدی رسم کنیم به دو مولفه ی x و y  به ترتیب  برای محور طولها و عرضها نیاز داریم.

رسم یک نقطه در VB:

برای رسم یک نقطه در روی یک شی مانند Form و یا PictureBox  از متد زیر استفاده می شود:

object.PSet [Step] (x, y), [color]

 Object: نام شی است که نقطه در روی آن رسم می شود.

Xو Y : مختصات نقطه ترسیمی می باشد.

Color: رنگ نقطه ترسیمی می باشد.

اگر دیدید نقطه ای که رسم شد بسیار کوچک است خاصیت DrawWidth مربوط به Object را بیشتر کنید     ( بیشتر از مقدار 1).

برنامه ی VB6 را اجرا کنید. یک شی CommandButton بر روی فرم قرار دهید. دستور زیر را در رویداد Click آن قرار دهید و دستور زیر را بنویسید:

Form1.PSet (1000, 2000), vbRed

برنامه را اجرا کنید نقطه با رنگ قرمز با اندازه 1000واحد(Twips)  از سمت چپ(Left) فرم و 2000  واحد از بالای(Top) فرم رسم می شود.

رسم خط در VB:

برای رسم یک خط در روی یک شی مانند Form و یا PictureBox  از متد زیر استفاده می شود:

object.Line [Step] (x1, y1) [Step] - (x2, y2), [color], [B][F]

Object: نام شی است که خط روی آن رسم می شود.

(x1,y1) : نقطه شروع خط می باشد.

(x2,y2) : نقطه پایانی خط می باشد.

Color: رنگ خط.

اگر آرگومان آخر از کاراکتر B استفاده شود یک مستطیل توخالی که خط قطر مستطیل می باشد ترسیم می گردد و اگر به همراه کاراکتر F نیز بکار برده شود یک مستطیل توپر ترسیم می گردد.

a)     Line(1000,2000)-(1500,800),vbRed

b)    Line - (400,800)

c)     Line (1,1)-(8,7),vbBlue,B

d)    Line (100,200)-(300,500),BF

مثال a یک خط با رنگ قرمز ترسیم می کند.

مثال b یک خط از نقطه جاری روی فرم به نقطه

(400,800) ترسیم می کند.

مثال c یک مستطیل تو خالی رسم می کند.

مثال d یک مستطیل توپر ترسیم می کند. 

رسم دایره در VB:

برای رسم یک  دایره  در روی یک شی مانند Form و یا PictureBox  از متد زیر استفاده می شود:

object.Circle [Step] (x, y), radius, [color, start, end, aspect]

(x,y) : مرکز دایره می باشد.

Radius : شعاع دایره

Color: رنگ دایره

اگر بخواهیم بجای دایره کمانی از دایره را ترسیم کنیم باید شروع کمان start(مقدار آن بین صفر تا (2*3.14 و  پایان کمان(بین صفر تا 6.28) را مقدار دهی کرد و اگر بخواهیم بجای دایره بیضی ترسیم نماییم گزینه aspect  را باید مقدار دهی کرد. اگر این مقدار از یک بزرگتر باشد بیضی بصورت عمودی و اگر کوچکتر از یک باشد بصورت افقی ترسیم خواهد شد.

مبدا مختصات:

مبدا مختصات در روی فرم شمال غربی ترین نقطه بر روی فرم می باشد( طبق شکل گوشه بالایی دست چپ)

آیا می توان محل مبدا مختصات را در روی فرم تغییر داد؟

برای تغییر مختصات باید از متد  Scale استفاده نمود. برای استفاده از این متد باید دو نقطه مشخص شود.

متد Scale را بصورت زیر می نویسیم تا مختصات جدیدی تعریف شود:

Object.Scale (a,b)-(c,d)

مثلا اگر متد Scale را به شکل Form1.Scale(-10,10)-(10,-10) تعریف کنیم مبدا مختصات در وسط فرم قرار می گیرد. اگر دستور Form1.PSet (0, 0) را اجرا کنیم نقطه ای در وسط فرم ترسیم می شود. شکل 2

اگر بخواهیم که فرم را به اندازه صفحه نمایش بزرگ شود باید چهار دستور زیر را در رویداد Form_Load قرار داد:

Form1.Height = Screen.Height

Form1.Width = Screen.Width

Form1.Top = 0

Form1.Left = 0

دو دستور اول  درازا و پهنای فرم را به اندازه ی دراز و پهنای صفحه نمایش می شود و دستور بعدی موقعیت فرم روی صفحه نمایش تنظیم می شود.

رسم نمودار y=sin(x)

ابتدا در رویداد Form_Activate دستورات زیر را بنویسید:

Private Sub Form_Activate()

Form1.DrawWidth = 4

Form1.Scale (-10, 10)-(10, -10)

Form1.BackColor = vbBlack

Form1.Line (-10, 0)-(10, 0), vbYellow

Form1.Line (0, 10)-(0, -10), vbYellow

End Sub

یک دکمه فرمان(CommandButton)  در روی فرم قرار دهید و دستورات زیر را در رویداد کلیک بنویسید:

Private Sub Command1_Click()

For x = -10 To 10 Step 0.1

y = Sin(x)

Form1.PSet (x, y), vbWhite

Next x

مقدار تابع  200 نقطه از x=-10  تا x=10 به فاصله 0.1(-10,-9.9,-9.8,……,9.9,10) را در y قرارداده  و نقطه متناظر با آن را رسم می کند. شکل 3 رسم خواهد شد. (توجه کنید زاویه x بر حسب رادیان می باشد.)

برای رسم دقیقتر شکل می توان نقاط بیشتری را رسم نمود و گام حلقه For را کمتر از 0.1 در نظر گرفت.

ایجاد مار پیچ:

برای ایجاد مار پیچ دو متغیر t و r را در بخش General  تعریف کنید. مقدار Interval شی Timer را نیز  1 قرار دهید سپس کدهای زیر را بنویسید:

Private Sub Form_Load()

Me.Height = Screen.Height

Me.Width = Screen.Width

Me.Top = 0

Me.Left = 0

c = Me.Height / Me.Width

Me.Scale (-10, 10 * c)-(10, -10 * c)

r = 0

t = 0

End Sub

Private Sub Timer1_Timer()

Me.DrawWidth = 3

y = r * Cos(t)

x = r * Sin(t)

Me.PSet (x, y),vbRed

r = r + 0.001

t = t + 0.01

End Sub

مثالی برای رسم چند ضلعی ها:

برای رسم چند ضلعی از طریق رسم دایره اقدام می کنیم. اگر بخواهیم n  ضلعی را رسم کنیم. یک آرایه پویا بصورت زیر تعریف می کنیم.

Private Type Point

x As Single

y As Single

End Type

Dim p() As Point

Dim RP() As Point

آرایه p آرایه ای از رکورد Point که شامل دو فیلد x و y  که مختصات یک راس چند ضلعی می باشد. چون مقدار n باید از ورودی خوانده شود آرایه p بصورت پویا تعریف می شود. شعاع دایره ای که چند ضلعی در آن محاط می شود نیز باید تعیین شود. کنترل  Text1 مقدار n و کنترل Text2 شعاع دایره  و کنترل Text3 زاویه دوران چند ضلعی  را مشخص می کند. یک commomdialog به نام cmd را به فرم اضافه کنید تا بوسیله آن رنگ های مختلفی ایجاد کنید.

 

Private Sub Command1_Click()

n = Val(Text1)

ReDim p(n) As Point

ReDim RP(n) As Point

teta = Val(Text3)              'زاویه چرخش

r = Val(Text2)                   ' شعاع دایره

m = 360 / n                        'فاصله کمان ها

i = 1

For t = 0 To 360 Step m

p(i).x = r * Cos(t * 3.14 / 180)   'طول نقاط چند ضلعی

p(i).y = r * Sin(t * 3.14 / 180)    ' عرض نقاط چنذ ضلعی

i = i + 1

Next t

For i = 1 To n

RP(i).x = p(i).x * Cos(teta * 3.14 / 180) - p(i).y * Sin(teta * 3.14 / 180)  'دوران طولها

RP(i).y = p(i).x * Sin(teta * 3.14 / 180) + p(i).y * Cos(teta * 3.14 / 180)  ' دوران عرض ها

Next

Me.Line (RP(n).x, RP(n).y)-(RP(1).x, RP(1).y)    'رسم خطی از آخرین به اولین نقطه چند ضلعی

For i = 2 To n

Me.Line -(RP(i).x, RP(i).y)   'رسم خطوط دیگر چند ضلعی

Next i

End Sub

Private Sub Command2_Click()

Cls                             ' پاک کردن کل صفحه

End Sub

Private Sub Command3_Click()

cmd.ShowColor

Me.ForeColor = cmd.Color          ' تغییر رنگ چند ضلعی ها

End Sub