الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

هندسة النقطة

مغلق
بدأه ahmedmummy في 29 يونيو 2005 · 15 رد · 1,563 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هندسة النقطة

قد تبخثون حق "النقطة" وقد تستصغرونها ولكن لا يجرىء احد ايا كان

ان ينكر انها اللبنه الاساسيه لكل المنحنيات والمسطحات وكل المجسمات

لذلك كل تعريفات المنحنيات كما درسناها فى مناهج الهندسة والرياضيات

كانت تبدء تلك البدايه التقليديه " هو المسار الناتج عن حركة نقطة........"

وهنا يكمن جبروت النقطة وتكمن سطوتها وامكانتها الغير محدوده .

الاختلاف الوحيد بين النقطه فى نظر الرياضيات ونقطتنا هذة هو السمك

فالرياضيات تعتبرها متناهيه فى الصغر لدرجة الصفر ونحن نعتبرها

متناهيه فى الصغر لدرجة" 1\567 سم" .

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

النقطه ستكون الشروح عامه الى حدما وان كنا سنستخدم لغة الفيجول بيسيك

فى الامثله . سنتناول باذن الله النقطه والخطوط والمنحنيات والمجسمات

ورسم الدوال والحركات التى يمكن تمثيلها على الشاشه برمجيا وغيرها

كالالوان وان شاء الله يكون الشرح بسيطاً وميسراً

ان اى لغة تحترم نفسها تحترم نفسها لابد وان يكون لديها مكتبة مليئة بدوال

الرسم فعلى الاقل –الان- تكفينا دالة تقوم برسم النقطة على الشاشه ومنها يمكن

عمل الكثير جدا .

وقبل ان ندخل فى حديثنا الطويل عن النقطة احب ان اعرفكم على الشاشة وتركيبها

ان اى شاشة كما تعرفون ما هى الا مستطيل له طول وعرض .

وكعادة كل المسطحات يمكن تمثيل اى نقطة تقع عليها باستخدام نظام احداثيات

يتكون من محورين متعامدين . وتم اسخدام المحورين السينى والصادى لهذا التمثيل

المحور السينى(x) :ويمتد من افقيا ً من اليسار الى اليمين

المحور الصادى(y): ويمتد رئسياً من اعلى الشاشة الى اسفل

x-y.jpg

(الاحداثيات الممثلة للشاشة)

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

Pset (x,y) , color

(x,y)

هى موضع النقطة على الشاشة تبعاً لنظام الاحداثيات السابق

Color

هو اللون الذى ستظهر به هذة النقطة

وبالنسبة للالوان فانه يجدر بنا الحديث قليلا عن الشاشة وتركيبها

قديماً عندما تم التفكير فى تصنيع شاشة كانت عبارة عن انبوب يسمى ب (CRT)

او انبوب اشعة المهبط وكان عبارة عن مدفع الكترونات يطلق شعاعاً الكترونياً

ليسقط على الشاشة الفسفورية فتضىء بلون اخضر ولن اخذكم عبر تاريخ تصنيع

الشاشات وسندخل مباشرة فى الشاشات الملونة وهى لها نفس الاسلوب تقريباً

غير انه هناك اكثر من مدفع للالكترونات والاهم هو انا الشاشة كل نقطة فيها تتكون

من ثلاث طبقات كل طبقة تشع لوناً مختلفا اذا سقط عليها شعاع الالكترونات

وكانت الالوان الثلاثة هى الاحمر والاخضر والازرق ولان النقطة صغيرة

فاننا لانرى الالوان الثلاثة بل نرى اللون الناتج من مزيج تلك الاطياف الثلاثة

وحتى لغات البرمجة لم تذهب بعيدا عن تلك الطريقة فى تكوين الالوان

لذلك ظهرت هذة الدالة

RGB(r,g,B)

حيث r تدل على نسبة اللون الاحمر وتأخذ قيمة ما بين الصفر و 255

و g تدل على نسبة اللون الاخضر و b للون الازرق..

كما ان هناك الالوان الجاهزه والتى لها اسماء مميزة فى الفيجوال بيزيك مثل

Vbred للون الاحمر او vbBlack للاسود وهكذا...................

وهناك التمثيل السادس عشرى للالوان وهناك الاربعة عشر لون الخاصة

بدالة الكيو بيزيك qbcolor© حيث cهو رقم ما بين صفر و 14

ورغم كل هذة الطرق انا افضل دالة التكوين rgb

يستكمل.......... :)

#2

يعطيك العافيه

#3

مشكور اخي ومستني التكملة

أشهد أن لا إله إلا الله ***************** وأشهد أن محمد عبده ورسوله

#4

شكرا على ردودكم يا بروفيشينال

وانتظر التكملة قريبا يا ANSI

#5

طبعا لا أحد يبخث قدر النقطة الا الجاهل طبعا

------- معلومة بسيطة --------

أصل كل الأشكال الهندسية مهما بلغ تعقيدها هو شكل واحد الا و هو المثلث لأنه كما تعلم هو الشكل الوحيد الذي نضمن فيه أن جميع نقاطه تكون في مستوى واحد

------------------------------

تم تعديل هذه المشاركة بواسطة crazy-man في 29 يونيو 2005 في 22:01

#6

شكرا على ردك يا كريزى مان

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

#7

دوال اخرى فى الفيجوال بيزيك

-دالة تمثيل الخطوط : وتعريفها كالاتى

Line (x1,y1)-(x2,y2) , color

(x1,y1)

هى نقطة البداية

(x2,y2)

نقطة النهاية

Color

هو لون الخط

line.jpg

دالة المستطيل : هى نفس دالة الخط مع اضافة حرف B

Line (x1,y1)-(x2,y2) , color , B

Line (x1,y1)-(x2,y2) , color

هو الخط الذى يمثل قطر المستطيل والذى يظهر فى الصورة باللون الاحمر

ولكنه لا يظهر انما وضع للتوضيح

B=box

وضعت للتفريق بين دالة الخط والمستطيل

box.jpg

دالة الدائرة (القوس) : وتعريفها كالاتى

Circle (x,y) , R , color , a1 , a2

(x,y)

هو مركز الدائرة

R

هو قطر الدائرة

Color

هو اللون كالعادة

a1

هى زاوية بداية الرسم وتقاس بالنظام الدائرى (الرادين)

ويبدء القياس من المحور الافقى المار بمركز الدائرة وفى اتجاة عقارب الساعة

a2

هى زاوية نهاية الرسم

circle.jpg

وهذة صورة توضيحية لفكرة زاوية البداية والنهاية حيث ان

ما يظهر هو الجزء المتصل من الدائرة اما المتقطع فوضع فقط للتوضيح

ولكن دالة الدائرة لم تكتمل بعد فقد تناسينا عمداً معامل اخير لتصبح الدالة هكذا

Circle (x,y) , R , color , a1 , a2 , W

W

هو نسبة القطر الرأسى الى القطر الافقى للقطع الناقص

ويكون الشكل دائرة فى حالة واحدة عندما تساوى الواحد الصحيح فقط

elibs.jpg

#8

موضوع رائع

بالتوفيق

#9

شكرا على الرد يا اخ نبهانى

وانظر المزيد قريبا

#10

الحركة الشاشة

كما تعرفون فى عمل افلام الرسوم المتحركة يتم عرض مجموعة من الصور

واحدة تلو الاخرى فينتج الفيلم المتحرك فى النهاية

نفس الفكرة سنستخدمها لحركة الاشياء على الشاشة فلجعل شيىء يتحرك

فاننا نرسمه ثم نمسحة ونرسمه بعد زحزحته قليلا وهكذا فيبدو متحركاً

ولنأحذ مثالا بسيطاً على هذا.

ولنقل مثلا اننا نريد تحريك دائرة من اعلى الى اسفل

كما قلنا فاننا سنرسم الدائرة ثم نمسحها ثم نرسمها على مسافه صغيره وهكذا

وبما ان الدائرة ستسقط الى اسفل فان الذى سيتغير هو موضع المركز

بالنسبة للمحور الرأسى Y

falling.jpg

وكما هو واضح من الصورة فان مكان المركز على المحور الافقى لا يتغير

وقيمته دائما ثابته اما الذى يتغير هو موضعه على محور الصادات y

اى ان احداثيات المركز ستتغير من y الى y + 10 مثلاً

اى برمجيا y = y + 10

ولنقم بهذا الجزء عمليا

قم بفتح مشروع جديد وضع عليه زرا وفى حدث ضغط الزر اكتب هذا الكود

Private Sub Command1_Click()
BackColor = RGB(0, 0, 0)
x = 1000
y = 567
r = 567
For i = 1 To 567
y = y + 10
Circle (x, y), r, RGB(0, 0, 255)
For k = 1 To 100000: Next k
Circle (x, y), r, BackColor
Next i
End Sub

وضعنا كود رسم الدائرة داخل جملة تكرارية

فنقوم برسم الدائرة ثم نقوم بمسحها

اما

For k = 1 To 100000: Next k

فوضعت فقط لجعل فترة زمنية بين رسم الدائرة ومسحها

لو رأى اى مبرمج عدد الجمل التكرارية فى البرنامج لاتهمنى بالجنون

ولا الومه فبالتأكيد يمكن الاستغناء عن تلك الجمل التكرارية وحفظ مصادر النظام

باستخدام تايمر ولكنى كتبته على تلك الصورة لسهولة فهمه لا اكثر

ولو طلب منى كتابة الكود بصورة اقصادية لمصادر النظام لكتبتة هكذا

Dim x As Integer

Dim y As Integer

Dim r As Integer

Private Sub Command1_Click()
BackColor = RGB(0, 0, 0)
x = 1000
y = 567
r = 567
Timer1.Interval = 75
End Sub



Private Sub Timer1_Timer()
y = y + 100
Circle (x, y - 100), r, BackColor
Circle (x, y), r, RGB(0, 0, 255)
End Sub

نكمل الباقى قريبا

تم تعديل هذه المشاركة بواسطة walcom في 3 يوليو 2005 في 18:23

#11

اسف على التاخر فى وضع الدروس

فقريبا ان شاء الله نكمل

وشكرا على من قام بتنظيم المشاركة الاخيره

#12

شرح ممتاز , ربنا يوفقك

اقتباس
For k = 1 To 100000: Next k

فوضعت فقط لجعل فترة زمنية بين رسم الدائرة ومسحها

جرب استخدام دالة الـ API التى تسمى Sleep

Private Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#13

دروس مفيدة

شكرا جزيلا لك

و نحن في انتظار التكملة

اختكم Spectrum

There is a will there is a way

#14

للمزيد من الاستفادة استعمل الوصلات التالية

1

2

3

45

من قال لا إله إلا الله صادقا دخل الجنة

موقعي للتعارف و تبادل الأخبار http://www.xybond.com

#15

للمشاركة و جاري القرأة :)

Nothing to mention except that I am Muslim

Using your brain is not bad as you think

My Blog

logo.jpg

#16

بسم الله الرحمن الرحيم

مشكور أخي العزيز على هذه المشاركة الرائعة جدا جدا جداااااا

معلومات أساسية لكني لا أخفي أن بعضها لم يمر علي قبل هذه المره

crazy-man كتب:
أصل كل الأشكال الهندسية مهما بلغ تعقيدها هو شكل واحد الا و هو المثلث لأنه كما تعلم هو الشكل الوحيد الذي نضمن فيه أن جميع نقاطه تكون في مستوى واحد

------------------------------

كيف تكون نقاطه في مستوى واحد ؟؟

ملاحضتي ليست تشكيك بك بل جهل مني لذا أرجو الايضاح :( :(

والسلام عليكم ورحمة الله وبركاته

********************* ******************** *********************

(( أشــهد أن لا اله الا الله ..... وأشهد أن محمد رسول الله ))

********************* ******************** *********************

لا تقـل من أيـن أبدأ

طـاعـة الله الـبدايـة

***

لا تقـل أين طـريـقي

شــرع الله الهـدايـة

***

لا تـقـل أيـن نعـيمي

جـنـة الله كـفـايـــــة

***

لا تقـل في الغـد أبدأ

ربمـــا تأتـي النهـايـــة

**************** **************** ****************

هذا الموضوع مغلق.

مواضيع مشابهة