النتائج 1 إلى 8 من 8

الموضوع: الدرس الثالث : اشكال جميلة ...

  1. #1
    التسجيل
    28-10-2002
    الدولة
    (السعودية)
    المشاركات
    1,042

    Post الدرس الثالث : اشكال جميلة ...

    السلام عليكم....

    هل من الممكن عمل اشكال جميلة بإستخدام اوامر بيسك فقط ... نعم ممكن ذلك وهذا مايتناوله الدرس

    معليش الدرس حيكون على السريع

    مقدمة عن الموضوع :

    الامر Line ....

    ماهو هذا الامر ؟ من اسمه يقوم برسم خط على النافذة(الفورم) ..

    وكيف احدد احداثيات هذا الخط ؟

    Line (X1, Y1)-(X2, Y2) 'this will draw line
    حيث :
    X1 : يحدد الاحداثي السيني لبداية الخط
    Y1 : يحدد الاحداثي الصادي لبداية الخط
    X2 : يحدد الاحداثي السيني لنهاية الخط
    Y2 : يحدد الاحداثي الصادي لنهاية الخط

    فمثلا عند كتابة الامر
    كود:
    Line (0, 0)-(1000, 1000) ' this will draw line
    سينتج لدينا الشكل التالي :


    ___________________________________________________
    كيف نتحكم بعرض هذا الخط ؟

    عرض الخط :Form1.DrawWidth = X
    بحيث كلما زادت X زاد عرض الخط
    ___________________________________________________
    كيف سنتحكم بلون الخط ؟
    قبل ذلك احب ان اشرح النظام RGB
    R = Red , G = Green , B = Blue
    وهذا النظام يقوم بمزج هذه الالوان لينتج لنا لون معين
    فمثلا اذا كان الR = 0 و ال B = 0 وال G = 0 ...
    سيكون شكل الكود كالتالي
    RGB(0,0,0) ' this is black color
    فالنتيجة هي لون اسود . لانها الالوان الثلاثة قيمها صفر اي لا لون .

    ماهي الارقام اللممكنة ادخالها في هذا النظام ؟
    للR وال G وال B لها نفس الحدود من 0 الى 255

    فمثلا اذا كان الR = 255 و ال B = 255 وال G = 255...
    سيكون شكل الكود كالتالي
    RGB(255,255,255) ' this is white color
    فالنتيجة هي لون ابيض لان الالوان الثلاثة جميعا 255

    جرب تغير هذه القيم وانظر الى اللون الناتج

    والان كيف سنتحكم بلون الخط ؟

    Form1.ForeColor = RGB(0,0,0) ' control the color
    ___________________________________________________
    ___________________________________________________
    * ترتيب اكواد اضهار الخط :
    اولاً / ذكر خصائص الخط اللون العرض ..الخ
    ثانياً/ اضهار النافذة بالامر Form1.show
    ثالثا/ الامر Line

    التطبيق (3-1) :

    مثال لذلك :
    كود:
    Private Sub Form_Load()
    Form1.DrawWidth = 4
    Form1.ForeColor = RGB(200, 100, 100)
    Form1.Show
    Line (0, 0)-(1000, 1000)
    End Sub
    سأرفق ملفا لهذا المثال البسيط ..
    هذه مقدمه لهذا الدرس
    وسأكمل بقية الدرس في أقرب وقت ممكن
    التعديل الأخير تم بواسطة PRG of RPG ; 08-12-2002 الساعة 12:35 PM
    كود:
    Arabian Xtreme Designs : http://axdteam.com

  2. #2
    التسجيل
    28-10-2002
    الدولة
    (السعودية)
    المشاركات
    1,042
    اسف
    الملفات المرفقة الملفات المرفقة
    كود:
    Arabian Xtreme Designs : http://axdteam.com

  3. #3
    التسجيل
    28-10-2002
    الدولة
    (السعودية)
    المشاركات
    1,042
    السلام عليكم....

    في الحقيقة اريد ان اطرح مشكلة قالها لي احد اخوتي في المسنجر وهي :
    لا تجود دروس توضح لك برمجة الابعاب من البداية .
    وحتى ان وجدت فهي تفترض انك ملم بلغة بيسك بنسبة 100% بالاضافة الى انك "عبقري" في الفهم ...
    بل انني اشبه الدروس بالامثلة ....
    لذلك قد لا تجدوني متأكد من معلوماتي 100% ببساطة لأن 99% منها اتت من الاستنتاج وليست معلومة .
    فلم اقرأ من كتب البيسك سوى كتاب واحد 600 صفحة وقرأته في 3 ايام ..وكان ذلك قبل 3 شهور ...
    فمثال على ذلك الامر Rnd ...

    فمثلاً رأيت مثال يقوم بإنشاء جدار عرضة عشوائي ويقوم بإكتشاف الاصدام على هذا الجدار "انظر الى مدى تعقيد الامثلة"
    فمن هذا المثال تعلمت التصادم والامر Line والامر Rnd ... ولكن بعد اخذ كمية جيدة من البندول ...

    فإذا قيل لك ان هذا الكود يطبع رقم عشوائي من صفر الى 100
    كود:
    MsgBox  Rnd * 100
    كيف تفسر معنى الامر Rnd ؟؟؟ انت مبرمج ويجب عليك فهم كل امر تقوم بكتابته .

    بعد التفكير : الامر Rnd يقوم بإختيار رقم عشوائي (حقيقي) يقع مابين الصفر والواحد
    فعند ضربه هذا العدد بالعدد 100 سينتج عدد قيمته من 0 الى 100
    ولكن هل الفتره (0,100) ام [0,100] ام (0,100] أم [0,100) .... الله اعلم .

    هذا الاستنتاج صحيح 100% ولكن هل هو الطريقة المستخدمة في الامرRnd ؟ لست متأكداً من ذلك

    اما اذا اردت عدد عشوائي ما بين 20 الى ثلاثين تقول
    كود:
    Msgbox 20 + Rnd * 10
    ما علاقة هذا الامر بدرسنا ...

    تخيل هذا المشهد




    هذا المشهد عبارة عن دوائر وخطوط عشوائي تضهر بألوان واحجام مختلفة ....

    لقد تعلمنا كل شي ما عدا الدوائر

    لعمل الدوائر نستخدم الامر Circle هكذا :
    Me.Circle (x1, y1), y2, RGB(r, b, g) ' this will draw circle
    حيث
    X1: الاحداثي السيني لمركز الدائرة.
    X2: الاحداثي الصادي لمركز الدائرة.
    Y2: هو طول قطر الدائرة
    R: قيمة اللون الاحمر من 0 الى 255
    B: قيمة اللون الازرق من 0 الى 255
    G: قيمة اللون الاخضر من 0 الى 255
    _________________
    التطبيق 3-2

    الان سنقوم بإنشاء الادوائر العشوائية :
    نضيف مؤقت Timer ونجعل Interval = 20 مثلاً

    كود:
    Dim R As Long, G As Long, B As Long
    Dim Y2 As Long
    R = Rnd * 255
    G = Rnd * 255
    B = Rnd * 255
    Y2 = Rnd * (Form1.Height / 2) ' to be in form
    Form1.DrawWidth = 4
    Form1.Show
    Form1.Circle (Form1.Width / 2, Form1.Height / 2), Y2, RGB(R, G, B) ' draw Circle
    عرفنا ثلاث متغيرات لتحمل الالوان العشوائية
    عرفناY2 ليحمل طول القطر وجعلناه قيمه عشوائية تقع داخل الفورم اي اقصى قطر هو Form1.Height / 2 واخترنا Height لنها عادة اصغر من الWidht ...
    جعلنا عرض خط الرسم = 4
    اضهرنا النافذة
    رسمنا الدائره و (Form1.Width / 2, Form1.Height / 2) = مركز الفورم

    ملاحظة لكي يكون في المركز تماماً :
    كود:
    Private Sub Timer1_Timer()
    Dim R As Long, G As Long, B As Long
    Dim Y2 As Long
    R = Rnd * 255
    G = Rnd * 255
    B = Rnd * 255
    Y2 = Rnd * (Form1.ScaleHeight / 2)
    Form1.DrawWidth = 4
    Form1.Show
    Form1.Circle (Form1.ScaleWidth / 2, Form1.ScaleHeight / 2), Y2, RGB(R, G, B)
    End Sub
    حيث كلمة Scale تقيس مع حذف الاماكن الزائدة مثلاً الشريط العلوي للنافذة

    طبق هذا المثال وطبق امثله اخرى من عندك وسترى انها بسيطة مجرد ان تعتاد عليها ...

    وامل ان ارى بعضاً من تجاربكم

    تحياتي
    الملفات المرفقة الملفات المرفقة
    التعديل الأخير تم بواسطة PRG of RPG ; 08-12-2002 الساعة 12:52 PM
    كود:
    Arabian Xtreme Designs : http://axdteam.com

  4. #4
    التسجيل
    28-10-2002
    الدولة
    (السعودية)
    المشاركات
    1,042
    السلام عليكم....

    تطبيق اخر للموضوع : عمل تدرج لوني

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

    كود:
    Private Sub Form_Load()
    Dim R As Long, G As Long, B As Long
    Dim X As Long
    For X = 0 To Form1.ScaleHeight
    R = (X / Form1.ScaleHeight) * 255
    G = (X / Form1.ScaleHeight) * 255
    B = (X / Form1.ScaleHeight) * 255
    Form1.Show
    Line (0, X)-(Form1.ScaleWidth, X), RGB(R, G, B)
    Next X
    End Sub

    الفكره في اللون هي X / Form1.ScaleHeight = مقدار يقع ما بين الصفر والواحد .... وكلما زاد العداد x اقترب من الواحد
    ثم نضرب هذا المقدار بـ 255 فالناتج : يتغير قيمة الالوان من 0 الى 255 وهو التدرج اللوني....

    سأرفق هذا المثال ....

    تحياتي
    الملفات المرفقة الملفات المرفقة
    كود:
    Arabian Xtreme Designs : http://axdteam.com

  5. #5
    شكراً لك على دروسك الرائعة و المميزة و إنت بالفعل عضو أكثر من ممتاز

  6. #6
    التسجيل
    29-11-2001
    الدولة
    Beyond Dreams
    المشاركات
    1,001
    الدرس جميل جدا!

    اخيرا عرفت استعمال RND
    شكرا كثيرا على مجهودك و الى الامام

  7. #7
    التسجيل
    28-10-2002
    الدولة
    (السعودية)
    المشاركات
    1,042
    السلام عليكم...

    شركاً لكم ....
    واحب ان اذكر ان الاستنتاج صحيح 100% ولااعلم لما لم انتبه لبساطة طريقة التأكد
    فلو كتبانا : MsgBox Rnd لنتج رقم بين الصفر والواحد

    تحياتي
    كود:
    Arabian Xtreme Designs : http://axdteam.com

  8. #8
    التسجيل
    28-10-2002
    الدولة
    (السعودية)
    المشاركات
    1,042
    السلام عليكم ....

    اعوذ بالله شركاً لكم ..مرة وحدة...كنت اقصد طبعاً Thanks
    كود:
    Arabian Xtreme Designs : http://axdteam.com

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •