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

سلسلة دروس الرياضيات والذكاء الاصطناعي(الدرس الثاني)

مغلق
بدأه hunterxhunter في 28 يونيو 2007 · 6 رد · 4,242 مشاهدة · في قسم برمجة الألعاب و الرسوميات العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

الدرس الثاني (المسارات المستقيمة)

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

المثال الأول : تخيل أن هنالك شخص يريد الانتقال من موقعه الحالي ( A ) إلى موقع ما (B ) فماذا ستفعل ؟

أولا سنفرض أن:

A=(x1,y1)

B=(x2,y2)

الحل

1- حدد موقع كل من النقطتين (A وَ B )

2- إعمل متجه يصل بين النقطتين (الموقعين A وَ B ) عن طريق (الدالة Y=m*X +d)

حيث d هو الجزء المقطوع من محور الصادات.

3- تحقق من :

أ- إذا كان x1 أصغر من x2 فإن انتقال الشخص يكون من اليسار إلى اليمين عن طريق المعادلة التالية

x1=x1+e

حيث e عدد ثابت

ب- إذا كان x1 أكبر من x2 فإن الانتقال يكون من اليمين إلى اليسار عن طريق المعادلة التالية

x1 =x1- e

4- بعد الخطوة الثالة يتم التعويض بقيمة x1 في الدالة من الخطوة الثانية فينتج لنا قيمة قيمة y1 وبذلك يصبح لدينا موقع الشخصية الجديد

5- تحقق من:

أ-إذا كان A!=B

ترجع إلى الخطوة الثالثة ثم الرابعة وهكذا

ب- إذا كان A=B

ينتهي الحل (الخوارزمية)

الآن لنأخذ مثال بالأرقام

لنفرض أن :

A=(2,3)

B=(9,10)

الآن سنحل المثال باستخدام الخوارزمية

1_

A=(2,3)

B=(9,10)

2_

أولا نوجد الميل

m= (y2-y1)/(x2-x1)

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

m=1

ثم نعوض بقيمة m في الدالة

Y=m*X +d

فينتج

Y=1*X +d

ثانيا نوجد الجزء المقطوع من محور الصادات

Y=m*X +d

عن طريق التعويض بإحدى النقطتين (A أو B ) في الدالة السابقة( مع ملاحظة أن الميل ثابت) فتصبح

3=1*2 +d (عوضنا بقيم A)

d=1

3_ في هذا المثال x1<x2

فنعوض بقيمة x1 في المعادلة

x1=x1+e

بحيث e =1 (e هو مقدار الإنتقال على محور السينات)

فتصبح

x1=2+1

x1=3

4_ نعوض بقيمة x1 في الدالة

Y=m*X +d

فتصبح

Y=1*3+1

Y=4 (حيث Y=y1)

إذا ً A=(3,4)

5_ من الواضح أن

A!=B

إذاً سنذهب إلى الخطوة الثالثة وهكذا

حتى تصبح A=(9,10)

عندها سيتحقق الشرط

A=B

فينتهي الحل

إلى هنا ينتهي درسنا

ولكن سيكون للشخصية اتجاه واحد فقط وهو عندما تكون زاوية نظره = صفر

أي أنه عندما يمشي للأمام سينضر يمين وعندما يمشي للخلف سينضر يمين وهكذا فكيف نحل هذه المشكلة ؟

الحل

لدينا ميل المسار m وهو في مثالنا السابق =1

نعوض في الدالة tan(q)=m

أي أن q =45

ومن هنا طبق الدرس الأول

انتهى الدرس

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

1- سهولة تحويل الخوارزمية إلى برنامج

2- سهولة تعميم بعض الخوارزميات

3- سهولة تتبع الأخطاء

4-لكي يسهل عليكم الدرس القادم لأنه تعميم إلى الدرس الأول والثاني

هذا من وجهة نضري

أي سؤال ؟

ستجدوا بعض الأمثلة في هذا الموضوع

/index.ph...131171&st=0

تم تعديل هذه المشاركة بواسطة hunterxhunter في 28 يونيو 2007 في 23:37

#2

لو عندنا قسم للرياضيات والخوارزميات للالعاب .. فأنت المشرف من هالحين :) .

قمت بتنفيذ تعليماتك خطوة بخطوة .. وطلع لي حركة جميلة

هذا مثال ( يعني حسبت الميل والجزؤ المقطوع من محور الصادات في ورقة خارجية ..لاني فقط اريد النتيجة).

المهم طلع لي كل شيء عشرة على عشرة ... وأنت بعد عشرة على عشرة .

هذا الكود .

float x1=-100,x2=100;

float y1=-100,y2=100;

float m = 1 ;

// y=m*x + d

// 100=1*100 + d >> d = 0

void display(void)

{

if(y1 <= y2 && x1 <= x2)

{

x1=x1 + 0.1;

y1=1*x1+0;

}

glClear (GL_COLOR_BUFFER_BIT);

glColor3f(1,0,1);

glLoadIdentity();

glTranslatef(100,100,0);

glRectf(0,0,10,10);

glColor3f(1,1,0);

glLoadIdentity();

glTranslatef(x1,y1,0);

glRectf(0,0,10,10);

glutSwapBuffers();

}

straight_path.zip

تم تعديل هذه المشاركة بواسطة الشمري في 29 نوفمبر 2009 في 23:12

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#3

جيد جدا الشرح لكن ساطبقه فيما بعد

اكمل وربنا يوفقك

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#4

السلام عليكم

أخي عبدالله تشكر على التطبيق

أخي حريف

مشكور وننتضر تطبيقك

أخي dr_abdalrhman

اقتباس
شرح كويس لكن لسة ما شوفت التطبيق

أعقتقد أن تطبيق الشمري إوفي وكفي

اقتباس
لكن ما علاقة هذا بالذكاء الاصطناعى-----مجرد سؤال جاء ببالى

سؤال غريب لكن ماهو تعريفك لل AI ؟

لكن ما رأيك في شخصية تسير في إتجاه وتنضر في إتجاه آخر ؟

في الحقيقة الدرس الأول والثاني ليسوا فقط للمسارات

فمثلا لو أرت أن تنضر إلى شخص ليس شرط أن تتجه له بكامل جسدك فقد يكفي أن تدير رقبتك بزاوية معينة (القيمة القصوى للزاوية هي 90 بتجاه اليمين أو اليسار )

وإذا أرت تطبق أكثر واقعية راح تجعل العين تنضر للشيء أي تتجه إليه

ولكني لم أذكر ذلك لأن تطبقها يحتاج لتعلم خوارزميات أخرى مثل A*

لختيار أقل كلفه للدوران

ملحوظة : خوارزمية A* ليست فقط للإيجاد أقصر مسار .

الدرس الثالث: المسارات المنحنية

الدرس الرابع : خوارزمية DFS (Depth First Search)

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

#5

يا جماعه إحنا ما صدقنا خلصنا من الكلام ده و رميناه ورا ظهورنا لما خلصنا جامعه ، هو ورانا ورانا :s

#6

أخي الله يجزيك الخير على هذا الشرح الرائع طريقتك جدا ناجحة ومشكور على جهودك لكن بالله عليك استمر ولاتتوقف.

#7

أووه, المعذره لم الاحظ موضوعك القيم (كالعاده), عموما

كان مثالي سيكون الأفضل في موضوع محاكاة Duck hunt لو طبقت ما تم شرحه. ;)

-waf

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…