|
همانطور که می دانید نمودار از مجموعه ای از نقاط تشکیل شده است. لذا با کنار هم گذاشتن این نقاط می توان نمودارهای با اشکال زیبا رسم نمود. اگر بخواهیم یک نقطه را در مختصات دو بعدی رسم کنیم به دو مولفه ی 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 مثال 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 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 |
|