• 0
  • مالي خلق
  • أتهاوش
  • متضايق
  • مريض
  • مستانس
  • مستغرب
  • مشتط
  • أسولف
  • مغرم
  • معصب
  • منحرج
  • آكل
  • ابكي
  • ارقص
  • اصلي
  • استهبل
  • اضحك
  • اضحك  2
  • تعجبني
  • بضبطلك
  • رايق
  • زعلان
  • عبقري
  • نايم
  • طبيعي
  • كشخة
  • النتائج 1 إلى 8 من 8

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

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

      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
      المواضيع
      71
      شكر / اعجاب مشاركة
      اسف
      الملفات المرفقة الملفات المرفقة
      كود:
      Arabian Xtreme Designs : http://axdteam.com

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

      في الحقيقة اريد ان اطرح مشكلة قالها لي احد اخوتي في المسنجر وهي :
      لا تجود دروس توضح لك برمجة الابعاب من البداية .
      وحتى ان وجدت فهي تفترض انك ملم بلغة بيسك بنسبة 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
      المواضيع
      71
      شكر / اعجاب مشاركة
      السلام عليكم....

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

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

      كود:
      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
      التسجيل
      04-11-2001
      الدولة
      U.A.E
      المشاركات
      4,196
      المواضيع
      67
      شكر / اعجاب مشاركة
      شكراً لك على دروسك الرائعة و المميزة و إنت بالفعل عضو أكثر من ممتاز

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

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

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

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

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

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

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

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

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