PDA

View Full Version : چگونه با استفاده از Visual Basic 6 یک استوانه ترسیم کنیم ؟؟؟



mkbo_webmaster
جمعه 25 فروردین 1385, 21:34 عصر
یه آقائی از طریق وبسایت برنامه نویس و آدرس میل بنده با من تماس گرفتند و درخواست کدی برای کشیدن یک استوانه در ویژوال بیسیک کردند.
البته قرار بود پاسخ اون بصورت میل به آدرس ایشان ارسال شود. ولی بنده بر خودم واجب دونستم تا این اطلاعات رو در اختیار خوانندگان سایت برنامه نویس هم قرار بدم.
گرچه سادس ولی شاید برای شما هم مفید واقع بشه.

کد زیر یک function یا بهتره بگیم تابع هستش که میتونه به راحتی برای شما یک استوانه ترسیم کنه. حالا هرجائی که بخواین. چه توی form ، چه picturebox و امثال آن ...
که اگه بخواید بگید در چه شیء ترسیم بشه کافیه که مقدار آرگومان Object_Name رو به دلخواه خودتون تعویض کنید. مثلا بزارین form1 یا me یا picture1 .
آرگومان THE_X یک مقدار عددیه که موقعیت x استوانه رو در شیء مورد نظر تعیین میکنه
آرگومان THE_Y یک مقدار عددیه که موقعیت y استوانه رو در شیء مورد نظر تعیین میکنه
آرگومان THE_WIDTH یک مقدار عددیه که طول استوانه رو در شیء مورد نظر تعیین میکنه
آرگومان THE_HEIGHT یک مقدار عددیه که عرض یعنی درازای استوانه رو در شیء مورد نظر تعیین میکنه
آرگومان RGB_Color یک مقدار عددی از نوع long باید باشه که رنگ استوانه رو در شیء مورد نظر تعیین میکنه
(برای تعیین RGB_Color میتونید تابع RGB رو مستقیما در آرگومان بکار ببرید تا رنگ مورد نظرتون بدست بیاد. اگه مثال پائین رو ببینید خودتون منظورم رو میفهمید ! )

آرگومان How_Ellipse یک مقدار عددیه که جنسیت دایره ها رو در استوانه مشخص میکنه که از 0 تا 1 باید داده بشه. اگه 1 باشه دایره های استوانه دایره های کاملی هستن. ولی اگه مثلا 0.5 باشه اونا تبدیل به بیضی میشن و اگر هم خواستید بیضی تون پهن تر بشه کافیه که عدد رو کمتر از 0.5 کنید.

اگه سوالی یا نظری داشتید، در خدمت شما هستم.
موفق و پیروز باشید.




Private Sub Form_Activate()
Call Cylinder_Drawer(Me, 300, 200, 50, 100, RGB(0, 0, 0), 0.2)
End Sub

Private Sub Cylinder_Drawer(ByVal Object_Name As Object, ByVal THE_X As Single, ByVal THE_Y As Single, ByVal THE_WIDTH As Single, ByVal THE_HEIGHT As Single, ByVal RGB_Color As Long, ByVal How_Ellipse As Single)
' ALL RIGHTS RESERVED BY MR. MAHDI JAZINI
' URL: WWW.MKBO.COM
' MAIL: WEBMASTER@MKBO.COM
'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''
Object_Name.Circle (THE_X, THE_Y), THE_WIDTH, RGB_Color, 0, 0, How_Ellipse
Object_Name.Line (THE_X - THE_WIDTH, THE_Y)-(THE_X - THE_WIDTH, THE_Y + THE_HEIGHT), RGB_Color, B
Object_Name.Line (THE_X + THE_WIDTH, THE_Y)-(THE_X + THE_WIDTH, THE_Y + THE_HEIGHT), RGB_Color, B
Object_Name.Circle (THE_X, THE_Y + THE_HEIGHT), THE_WIDTH, RGB_Color, 3.15, 0, How_Ellipse

End Sub







/

mkbo_webmaster
یک شنبه 27 فروردین 1385, 19:10 عصر
به سفارش همون آقایی که گفتم یه تابع دیگه پیشرفته تر از قبلی نوشتم.
به این تابع یه آرگومان از نوع رشته ای اضافه شده که مقادیر h یا v به خودش میگیره امتحان کنید و اگه سوال داشتید بفرمائید :




Private Sub Form_Activate()
Call Cylinder_Drawer_2(Me, 2000, 1900, 1000, 1000, RGB(0, 0, 0), 2, "h")
End Sub


Private Sub Cylinder_Drawer_2(ByVal Object_Name As Object, ByVal THE_X As Single, ByVal THE_Y As Single, ByVal THE_WIDTH As Single, ByVal THE_HEIGHT As Single, ByVal RGB_Color As Long, ByVal How_Ellipse As Single, Optional ByVal H_Or_V As String)

' ALL RIGHTS RESERVED BY MR. MAHDI JAZINI
' URL: WWW.MKBO.COM
' MAIL: WEBMASTER@MKBO.COM
'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''

Select Case Trim$(UCase$(H_Or_V))
Case "V"
If How_Ellipse > 1 Then Call MsgBox("When You Choose Vertical Mode, How_Ellipse Arguman Must Be Between 0 to 1, please !!!", vbCritical + vbOKOnly, "Cylinder_Drawer_2 Function (Made By webmaster@mkbo.com)"): Exit Sub
Object_Name.Circle (THE_X, THE_Y), THE_WIDTH, RGB_Color, 0, 0, How_Ellipse
Object_Name.Line (THE_X - THE_WIDTH, THE_Y)-(THE_X - THE_WIDTH, THE_Y + THE_HEIGHT), RGB_Color, B
Object_Name.Line (THE_X + THE_WIDTH, THE_Y)-(THE_X + THE_WIDTH, THE_Y + THE_HEIGHT), RGB_Color, B
Object_Name.Circle (THE_X, THE_Y + THE_HEIGHT), THE_WIDTH, RGB_Color, 3.15, 0, How_Ellipse
Case "H"
If How_Ellipse < 1 Then Call MsgBox("When You Choose Horizontal Mode, How_Ellipse Arguman Must Be Between 1 to 2, please !!!", vbCritical + vbOKOnly, "Cylinder_Drawer_2 Function (Made By webmaster@mkbo.com)"): Exit Sub
Object_Name.Circle (THE_X, THE_Y), THE_WIDTH, RGB_Color, 0, 0, How_Ellipse
Object_Name.Line (THE_X, THE_Y - THE_WIDTH)-(THE_X + THE_HEIGHT, THE_Y - THE_WIDTH), RGB_Color, B
Object_Name.Line (THE_X, THE_Y + THE_WIDTH)-(THE_X + THE_HEIGHT, THE_Y + THE_WIDTH), RGB_Color, B
Object_Name.Circle (THE_X + THE_HEIGHT, THE_Y), THE_WIDTH, RGB_Color, 4.7, 1.6, How_Ellipse
Case Else
Call MsgBox("Please Specify The Cylinder Orientation Argument Before Using It !!!", vbCritical + vbOKOnly, "Cylinder_Drawer_2 Function (Made By webmaster@mkbo.com)"): Exit Sub
End Select
End Sub

R_BABAZADEH
دوشنبه 04 اردیبهشت 1385, 07:28 صبح
ممنون
یه مثال هم بدی بد نیست

mkbo_webmaster
دوشنبه 04 اردیبهشت 1385, 09:52 صبح
اونی که اون بالاست پس چیه ؟ یه کم دقت کنید ...








/