Electronic Gilgamesh

عزيزي الزائر كما هو واضح بأنك زائر للمنتدى لذى نود ان ندعوك الى الدخول ان كانت لديك عضوية او التسجيل في المنتدى نتشرف بتواجدك معنا حيث المعلومة الجديدة والدروس التعليمية الحصرية
Electronic Gilgamesh

For information & communication technology


    اهم الطرق في لأستخدام الرسومات في الفيجوال بيسك

    شاطر

    كلكامش الألكتروني
    Admin
    Admin

    عدد الرسائل : 186
    العمر : 29
    تاريخ التسجيل : 11/11/2008

    اهم الطرق في لأستخدام الرسومات في الفيجوال بيسك

    مُساهمة من طرف كلكامش الألكتروني في الخميس يناير 22, 2009 8:27 pm

    الرسومات في فيجوال بيسيك

    الالوان : هناك طريتقتين لتحديد الالوان فى لغة الفيجوال بيزيك
    1- باستخدام الوظيفة RGB Function لتحديد قيمة الالوان الاساسية ( احمر ، اخضر ، ازرق)

    RGB (0, 128, 0 )
    يمكن اعطاء قيمة الالوان من O الى 255

    امثلة :

    كود
    FORM1. BACKCOLOR = RBG (0,128, 0 ) ( Green)
    FORM2. BACKCOLOR = RGB (255 , 255, 0 ) (Yellow)
    Pset ( 100, 100), RGB ( 0,0,64) ' Set Point to blue dark






    - استخدام الوظيفة QBCOLOR

    وهى تحدد قيمة الالوان طبقا لجدوال الالوان الموجودة فى ميكروسوفت كويك بيزك
    وهى الالوان من 0 الى 15، مثال :



    كود
    FORM1.BACKCOLOR = QBCOLOR (5)



    لانشاء الرسوم فى تطبيق يمكن استخدام ايكونات التحكم فى مسطرة الادوات:



    كود
    Shape Control
    Line Control





    اضافة الصور للتطبيق :

    من السهل اضافة الصور خلال مرحلة التصميم
    * لعرض صورعلى سطح الفورمة :-
    اضغط خاصية picture للفورمة ثم قم باختيار
    الصورة المراد عرضها على سطح الفورمة
    * او يمكن استخدام أداة image او picture وذلك بسحب الاداة المطلوبة وادراجها فى الفورمة ، ثم من نافذة الخواص Properties List خاصية picture حمل الصورة المطلوبة لاحظ الفرق بين اداة image ، واداة picture
    فالاداة picture بها خاصية autosize لامكانية ضبط ابعاد الاداة حسب حجم الصورة ، والاداة image ليس لها هذه الخاصية .
    كما يمكن استخدام اللصق واللزق / او النسخ واللصق من اى برنامج أخر مثل paint brush

    ولتحميل الصورةاُثناء التشغيل :-
    نستخدم الوسيلة LoadPicture كما يلى ** ادرج على فورمة اداة صورة picture وغير اسمها الى picShow .
    ** لتحميل صورة home.jpg من الدليل c:\images اكتب الامر كما يلى


    كود
    PicShow.Picture = LoadPicture ("C:\images\home.jpg")



    ويمكن استخدام loadpicture لتحميل صورة من اداة/ او صندوق صورىة اخر فاذا كان لدينا اداة image تسمى imgShow فى نفس الفورمة ونريد أن ننسخ الصورة الموجودة فى picShow فى هذه الاداة ، نستخدر الامر التالى :-


    كود
    Set imgDisplay.Picture = PicDisplay.Picture



    يمكن استخدام الوظيفة Load Picture لحذف صورة اثناء التشغيل كمايلى :


    كود
    Set imgDisplay.Picture = LoadPicture("")




    الرسم فى VB

    تستخدم اوامر الرسم فى vb لرسم نقط Pset او خطوط Line او دوائر circle

    رسم النقط :-
    يتم تحديد موقع النقطة على الشئ المراد الرسم داخله ، ولتكن موقع النقطة داخل هذا الشئ هى 50,70 يكون الامر كالتالى



    كود
    Pset(50,70)



    يمكن استخدام الالوان - انظر درس الالوان فى vb - كما يلى


    كود
    Pset(50,70),RGB(0,0,255)



    جرب المثال التالى لرسم نقط عشوائية على الاداة الحالية


    كود
    sub DrawPointsRnd()
    R= 255 * Rnd
    G= 255 * Rnd
    B = 255 * Rn
    XPos = Rnd * Scale Width
    Ypos = Rnd * Scale Height
    Pset (Xpos, Ypos), RGB ( R,G,B)
    END SUB





    رسم الخطوط والاشكال الرباعية :-

    يستخدم امر line لرسم خط بين نقطتين كما يلى



    كود
    line(50,50)-(700,500)



    ويستخدم الامر line لتوصيل خط من اخر نقطة تم رسمها لنقطة اخرى كما يلى


    كود
    line -(1000,1000)



    لقد تم رسم الخط من اخر نقطة تم رسمها (500,700) الى النقطة (1000,1000) - لاحظ استخدام "-" كما يمكن رسم الاشكال الرباعية - المستطيل او المربع - بألامر line كما يلى


    كود
    Line(500,500)-(1000,1000),,B



    لقد تم رسم شكل رباعى طول ضلعه 500 (تويب) من النقطة (500،500) ( اى الى النقط (1000،1000) ويمكن أن نرسم نفس هذا الرسم بأستخدام step والتى نستخدمها لنسب النقط واحدة بالاخرى انظر المثال لتفهم مااعنيه :


    كود
    Line (500,500) - step (1000, 0)
    Line- step (0,1000 )
    Line - step( - 1000 , 0)
    Line- step ( 0, -1000)






    الخطوة الاولى باستخدام step رسمنا خط طوله 1000 تويب من عند النقطة 500 موازيا للمحور x
    الخطوة الاولى باستخدام step رسمنا خط طوله 1000 تويب من عند النقطة 500 موازيا للمحور y عموديا على الخط الاول
    وهكذا .. رسمنا الشكل الرياعى باستخدام step
    لاحظ علامتى ",," فهما يستخدمان لادراج اللون ، كما أن استخدام حرف b يستخدم لرسم شكل رباعى مفرغ ، ولرسم شكل رياعى مصمت نستخدم bf كما يلى


    كود
    line(500,500)-(1000,1000),qbcolor(4),bf



    لقد رسمنا شكلا رباعيا مصمتا لونه احمر - راجع درس الالوان -
    لاستخدام هذه الاساليب لابد من تحديد الكائن
    [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] ، والا سيعتبر VB ان الكائن المراد الرسم عليه هى الفورمة التى تنادى الكود .

    ***المثال التالى برسم على الفورمة MyForm


    كود
    MyForm.pset( 500, 500)




    ***المثال التالى يرسم فى صندوق صورة يسمى PicShow


    كود
    PicShow.Pest (500, 500)




    ***المثال التالى يرسم فى الفورمة الحالية :

    كود
    Pest ( 500 , 500 )


    ***استخدام CLS لمسح الشاشة :

    كود
    PicShow.cls




    رسم الدوائر


    كود
    [Object.] Circle[Step] (x,y), Radius [ , Color]




    المثال يرسم دائرة نصف قطرها raduis عشوائى وبالوان عشوائية :



    كود
    Sub CircleDemo ( )
    Dim Radius
    R = 255 * Rnd
    G = 255 * Rnd
    B = 255 * Rnd
    Xpos = ScaleWidth/12
    Ypos = ScaleHeight/12
    Radius = (( YPOS * 0.9) +1) * Rnd
    Circle ( Xpos,Ypos) , Radius , RGB(R,G,B)
    END SUB






    لرسم القوس :

    لابد من تحديد الزاوية او نقطة البداية والنهاية


    كود
    [ Object.] Circle[Step] (x,y), Radius, [color], Start,End[, aspect]



    قيمة aspect هى النسبة بين البعد العمودى و البعد الافقى
    ويمكن رسم الشكل البيضاوى كما فى المثال التالى :


    كود
    Private sub form-click( )
    FillStyle = 0
    Circle ( 600, 1000) , 800 ,,,, 3
    FillStyle = 1
    Circle ( 1800 , 1000) ,800,,,, 1/ 3
    END SUB





    لاحظ استخدام fillstyle ، فاذا كانت قيمتها = صفر فأن الرسم يكون مفرغا ، واذا كان يساوى واحد فأن الرسم يكون مصمتا


    انشاء رسم بسيط متحرك Animation
    ي
    مكن انشاء رسم بسيط متحرك وذلك بالتبادل فى اظهار رسمين او اكثر كما يمكن ذلك بتحريك الصورة :

    - ضع اداة الصورة PICTURE على سطح الفورمة ، غير الاسم الى picIcon
    - انسخ هذه الاداة والصقها بالفورمة ، ستظهررسالة لانشاء مصفوفة من اداة الصورة picIcon
    - كرر ذلك ثانية
    - اصبح لديك الان ثلاث ادوات لصندوق الصور هى picIcon(0),picicon(1),picIcon(2)
    - ضع صندوق صورة على الفورمة وغير اسمها الى picDisp
    - الان من قائمة الخواص حدد الايكونة التى تظهر فى كلا من صناديق الصور الثلاث الاولى وهى صور اشارة المرور الخضراء والانتظار الصفراء والحمراء بالتوالى
    وستجد هذه الصور فى مكتبة الصور القادمة مع vb6 على مجلد common/graphics/icons/traffic
    - ضع اداة المؤقت timer
    - فى حدث timer1_timer اكتب الاوامر


    كود
    Private Sub Timer1_Timer()
    If Form1.picDisp = PicIcon1(0).Picture Then
    Form1.picDisp = PicIcon1(1).Picture
    ElseIf Form1.picDisp = PicIcon1(1).Picture Then
    Form1.picDisp = PicIcon1(2).Picture
    ElseIf Form1.picDisp = PicIcon1(2).Picture Then
    Form1.picDisp = PicIcon1(0).Picture
    End If
    End Sub





    جرب تشغيل هذا البرنامج ، هل رأيت الاشارات الثلاث يتبادلن الظهور فى صندوق الصور picDisp ، اذا حدث ذلك فقد نجحت والا اعد كتابة البرنامج لاتنسى ان تكتب الامر التالى فى form1_load


    كود
    Form1.picDisp = PicIcon1(0).Picture



    هل عرفت لماذا ؟

    الان فلتجرب هذا البرنامج :
    - ضع اداة المؤقت timer ، اضبط مواصفة interval =500 - او اكثر اذا اردت أن تجعل الاستجابة بطيئة - واكتب الاوامر التالية


    كود
    Private Sub Timer1_Timer()
    Dim OldDrawStyle%
    OldDrawStyle% = Form1.DrawStyle
    Form1.DrawStyle = vbSolid
    DrawRubberBand picDisp.Top, picDisp.Left, picDisp.Height, picDisp.Width
    Form1.DrawStyle = OldDrawStyle%
    End Sub





    - اكتب الاجراء التالى


    كود
    Sub DrawRubberBand(ByVal x1, ByVal y1, ByVal x2, ByVal y2 As Single)
    Dim OldDrawMode%
    OldDrawMode% = Form1.DrawMode
    Form1.DrawMode = vbInvert

    Line (y1 - 10, x1 - 10)-(y2 + y1 + 10, x2 + x1 + 10), , B
    Form1.DrawMode = OldDrawMode%
    End Sub





    لاحظ استخدام اوامر drawmod ,drawstyle


    استخدام Anto Redraw :
    خاصية AntoRedraw هى خاصية boolean والتى بضبطها الى TRUE يجعل مخرجات الرسم تخزن فى ذاكرة الحاسب .
    فعند عرض نافذة فوق نافذه اخرى ، يجب حفظ النافذه الاولى بالذاكرة حتى يمكن اعادتها ثانية بعد انتهاء استخدام النافذة الثانية ، لذا يجب ان تضبط خاصة ِAutoRedraw للاولى الى TRUE والثانية الى FALSE ( حتى يمكن الغاؤها تماما

    hammody88

    عدد الرسائل : 7
    العمر : 28
    تاريخ التسجيل : 16/12/2008

    رد: اهم الطرق في لأستخدام الرسومات في الفيجوال بيسك

    مُساهمة من طرف hammody88 في الخميس يناير 29, 2009 3:24 pm

    عاشت ايدك ياورد

      الوقت/التاريخ الآن هو الخميس ديسمبر 08, 2016 2:16 am