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

قانون التسارع

مغلقرائج
بدأه Abdullah.Alshammeri في 19 مايو 2005 · 52 رد · 21,073 مشاهدة · في قسم برمجة الألعاب و الرسوميات العام
مشاركة: واتساب X فيسبوك تيليجرام
#26

اولاً : Super Computer محتاجينه علشان دقيق ، المعادلة V^2 = Vo^2 + 2 * a * d بها اخطاء لو طبقتها علي الكومبيوتر العادي هتلاقي خطأ و احنا عايزين محاكاة simulation يعني عايزين دقة للواقع

ثانياً - منقدرش باستخدام المعادلة دي اننا نحسب ل N-Objects هنكامل لعدد N ؟ مش ممكن يحصل !

لازم نستخدم طرق تقريبية Numerical Methods - اكيد درستها .

لذلك نلجأ إلي المعادلات

v=v+a*t

x=x+a*t

المشتقة اساساً من تقريب اويلر Euler Integration للطرق التقريبية Numerical Methods .

طالما الموضوع عايزينه يتعقد ...

المعادلات اللي ذكرتها لاويلر مش بنستخدمها في الالعاب الاحترافيه لانها كمان مش دقيقة لو عايز كمان تجيب الانحناء curveture رو Rho للسيارات "محاكاة واقعية " في لعبة Need For Speed مش هينفع نستخدم اويلر ... طبعاً انت عارف ان الانحناء بيتحسب علي شكل المنحني نفسه كارتيزي - قطبي ..إلخ

بنستخدم تقريب Runge Kutta aka RK4 رنج كوتا للتكاملات التقريبيه ... طبعاً اشتقاقه صعب و مقرف

لكن ممكن تحاكي به اشياء ممتازه

يعني مثلاً لما كنت بالخارج كان في مبرمج عمل تقريب لجسم شخصية كانه زنبركات springs طبعاً مش هنعرف نستخدم معادلة القوة اللي بتأثر علي الزنبرك F=SK .. لانها علي زنبرك واحد -- مش هنعرف نكاملها ل N زنبرك ! .... استخدم RK4 .

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#27

ماشي كلام جميل

طبعا الطرق الNumerical معظمها تقريبية و لا يمكن تطبيقها متتالية بالشكل الرهيب الذي يحدث في الgames حتى لا يحدث Error Accumeltion

على العموم انا كنت عاوز اعرف انتم اساسا كنتم حتعملوها ازاي؟ (انا خبرتي في برمجة الجرافيكس صفر) و لكن من باب العلم بالشيء

و شكرا

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#28

السلام عليكم

أخى أحمد هل اشتقاق رنج كوتا للتكاملات التقريبيه ( تفاضل دوال أم تكامل ) لأنى أخذت التفاضل ولسه التكامل ؟

#29

تكامل ، اصبر علي التكامل :D خش هندسة و هتعرفه !

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#30

ربنا يساهل

يارب

#32

متشكر أخى على الرابط فعلاً رابط مفيد

#33

up

وش صار على الموضوع ...

انا سأبدأ الاسبوع هذا .. اتمنى يا ringojet ان تضع نتيجة ماتوصلت اليه لنستفيد ..

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

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

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#34
اقتباس
برمجة الالعاب حلم لكن ممكن تصبح سراب

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

من نتائج البرمجة الاصابة بمرض التوحد والانطوائية :(

الصراحة انتا هيك خوفتنى..خصوصا من اول جملة.. :unsure:

لكن هل بإمكانك تفسير كلامك بأنها ممكن ان تصبح سراب..

#35

سبحان الله .. ما هذا الاحباط و التثبيط!! هي لعبة! مجرد لعبة!

كيف اذا سنهزم امريكا؟

#36
Graphic_designer_boy كتب:

الصراحة انتا هيك خوفتنى..خصوصا من اول جملة.. :unsure:

لكن هل بإمكانك تفسير كلامك بأنها ممكن ان تصبح سراب..

والله توقيع الاخ الشمري فيه نوع من المبالغه حسب وجهة نظري :D

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

انا شخصيا احب برمجة الالعاب وان شاء الله بعد الاحتراف لن اتركها بل ان حالفني الحظ فساكون شركه لتمويل الالعاب العربيه وسيكون بها الفرق المسؤوله ( هذا هو هدفي) وان شاء الله ان اصل الى ما اريد

وشكرا

موقعي :- www.gamesdevteam.com

#37
hasan_aljudy كتب:
سبحان الله .. ما هذا الاحباط و التثبيط!! هي لعبة! مجرد لعبة!

كيف اذا سنهزم امريكا؟

لما لا يكون هدفنا هزيمة كل الغرب وليس امريكا فقط ؟؟

موقعي :- www.gamesdevteam.com

#38

!!!!

هذا كان توقيع الشمري؟!

اقتباس
لما لا يكون هدفنا هزيمة كل الغرب وليس امريكا فقط ؟؟

لم اكن اقصد هزيمتهم في الالعاب, بل هزيمتهم في الحرب :P

#39

انتم واصلوا .. واللي كاتبه الله - سبحانه - يصير ..

لا اعتقد اننا سنستمر ... بسبب تجارب سابقة ... لكن التفاؤل زين ... لكن هزيمة الغرب .. مش ممكن في هالزمان .. الا اذا جاء جيل افضل من جيلنا :)

لكن لو سويت لعبة .. ضد امريكا .. ماراح انتهي منها الا وانا في قوانتنامــ.......... اسكت احسن .

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

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

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#40

لن يمكننا هزيمة امريكا و الغرب و كل مايمكن ان نسعى اليه هو ان نعمل على ان لا تهزمنا امريكا

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#41

ايوة يا عم طبعا .. انتوا شايفين ان تصيم لعبة امر مستحيل .. طبيعي هزيمة امريكا بقة شي من الخيال!

بالنسبة لعمل لعبة ضد امريكا, انا كنت افكر في استخدام محرك half-life 2 في عمل لعبة عن العراق .. خصوصا ان قصة اللعبة اصلا تشبه قصة العراق, يعني ممكن على الأقل تبديل مودلات الكومباين بمودلات مارينز! و من ثم عمل بعض المرحال اللتي تمثل اماكن في بغداد مثلا .. شي من هالقبيل, و بعدين كله ييجي ان شاء الله.

في الحقيقة لم انفذ المشروع لاني لا اعرف كيف ادير المشاريع, و لكن لو هناك اي واحد يتبني المشروع فأنا مستعد للعمل فيه :P .. او اي واحد فقط متحمس للفكرة (حتى لو تكن لديه ادنى فكرة عن كيفية العمل), اذا رأيت امكانية تشكيل فريق فقد تكون هذه خطوة اولى بإذن الله.

اقول يا الشمري .. شكلك تعبان من الامتحانات! لا تخلي الامتحانات تعقدك ;) زين عمي؟

اقتباس
الا اذا جاء جيل افضل من جيلنا

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

انا اعتقد ان جيلنا هو الجيل ... ;) إن شاء الله.

تم تعديل هذه المشاركة بواسطة hasan_aljudy في 11 يونيو 2005 في 12:12

#42
اقتباس
اقول يا الشمري .. شكلك تعبان من الامتحانات! لا تخلي الامتحانات تعقدك  :) زين عمي؟

جبتها يابعد حيي ... :: :lol:

الظاهر اني لازم اروق يومين او ثلاثة عشان ما اتعقد زيادة :lol:

بقي فيزياء وكيمياء .... <_<

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

للمعلومية لو استخدمنا محرك جاهز .. لرأيتنا الان ننتج الالعاب بالهبل ... لكن كل واحد يريد يبدأ

من تحت الصفر ....

-3

-2

-1

0

1

2

3

4

5

وبعدين ينتهي بنزين الحماس ... ويكون

ر

م

ا

د

انا ما اقصد احد لكن حالتنا شكل عام ..

تم تعديل هذه المشاركة بواسطة الشـمري في 11 يونيو 2005 في 12:48

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

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

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#43

ولازلت اقول واكرر .. عشان تنتبهوا كويس ...

نستطيع عمل لعبة ضخمة باستخدام محرك جاهز .. وسنتعلكم الكثير .. مثل

كيفية تصميم المحرك .. (( وذلك بالنظر الى المحركات الاخرى ))

تطبيق بعض مسائل الرياضيات والفيزياء واقعيا

نتعرف على عالم برمجة الالعاب .. من الداخل .. احس انه عالم خيالي .... :) انا وش جاني ؟؟؟

اتمنى ان شاء الله اني انجح في تصميم ديمو للعبة شبيهة بريزدينت ايفل خلال الشهر هذا .. ان شاء الله .

جاري التحضير -=-=-=-=-1%=-=-=-=-=-

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

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

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#44
اقتباس
نستطيع عمل لعبة ضخمة باستخدام محرك جاهز .. وسنتعلكم الكثير .. مثل

كيفية تصميم المحرك .. (( وذلك بالنظر الى المحركات الاخرى ))

تطبيق بعض مسائل الرياضيات والفيزياء واقعيا

نتعرف على عالم برمجة الالعاب .. من الداخل .. احس انه عالم خيالي ....  انا وش جاني ؟؟؟

ترة كلامك صحيح ..

لما تشوف شكل المحرك من الداخل تحس ان الخيالات اللي كانت في دماغك كلها انسفت :P لانك اول مرة تشوف شي فعلي حقيقي يعني ..ما ادري يعني, تحس انك تعلمت شي جديد, او ان عينك تفتحت على عالم جديد! يعني بعد ما تفيق من الدوخة سينتابك شعور بالرغبة باكل المحرك كله من فوق لتحت و طبخه و عجنه حتى تتعلم المزيد و يزداد تفتح عقلك .. و دوختك! :wacko:

تم تعديل هذه المشاركة بواسطة hasan_aljudy في 11 يونيو 2005 في 13:24

#45

هاه .. نعود للموضوع ... الان جاهز من ناحية الجرافكس...

up

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

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

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#46

همممم .. وين كنا واصلين في الحديث؟

انا تهت, بس اذا تريد تطبق السرعة و الحركة ببساطة (بدون تصادم ولا شي .. )

فتستطيع الاتي:

لنفرض ان الـ entity تحتوي على:

acceleration

velocity

position

و ان هناك طريقة لتحديث الـ entity باستمرار, يعني كل frame في اللعبة.

ماشي؟

عندك طرقة لايجاد الوقت .. مثلا timeGetTime او غيرها من الملاعيب.

في كل فريم تقوم بتخزين الوقت, و تقوم كذلك بحساب الفرق بين هذا الفريم و الفريم السابق. يعني عندك

timeDelta

الان لكي تحرك اللاعب:

على فرض ان هناك سرعة و موقع (شوية انسى التسارع)

فستقوم بتغيير الموقع بناءا على السرعة, و ستسخدم فرق الزمن عن الفريم السابق لحساب المسافة اللتي تحركتها الـentity خلال هذه الفترة الزمنية:

displacement = velocity * timeDelta;
position += displacement;

طبعا كل من السرعة و الموقع هما vector و الـ timeDelta هو رقم عادي (scalar) و عملية الضرب

velocity * timedelta

هي ضرب متجه برقم, على فرض ان المتجه هو خط, فالناتج من هذا الضرب هو خط جديد طوله هو طول المتجه مضروب في الرقم.

طبعا هذا على فرض انك تقوم في كل فريم برسم الـ entity بناءا على موقعها.

طيب الان ماللذي فعلناه؟

استخدمنا الـ velocity لتغيير الـ position.

عندما يكون عندنا acceleration, اعتقد اننا نقوم في الأول بتغيير الـ velocity بنفس الطريقة التتي غيرنا فيها الـ position في الاعلى.

ثم نقوم بتغيير الـ position بناءا على الـ velocity.

لاحظ انه لا يوجد شي اسمه v1 او v2 لاننا لا نتكلم عن سير لمسافة معلومة لفترة معلومة من نقاط معلومة, نحن نتحدث عن كائن يسير و عنده تسارع معين, و ما نقوم به هو تغيير السرعة باستمرار بناءا على التسارع.

ثم نستخدم معلومات السرعة الجديدة لتغيير الموقع (ايضا باستمرار)

الان قلنا ان تغير الموقع بناءا على السرعة هو:

position = position + velocity * timeDelta;

و بنفس الطريقة, تغيير السرعة بناءا على التسارع هو:

velocity = velocity + acceleration * timeDelta;

فبالتالي العملية كلها تصبح:

velocity = velocity + acceleration * timeDelta;
position = position + velocity * timeDelta;

(التسارع اعتقد هو ايضا متجه .. اليس كذلك؟ :blink: )

و هذا يحصل في كل فريم, و بعدها تقوم برسم الـ entity بناءا على الـ position

و الله أعلم.

اذا كانت هذه الاجزاء موجودة في محركك, جرب و قلي النتيجة.

تم تعديل هذه المشاركة بواسطة hasan_aljudy في 8 يوليو 2005 في 05:34

#47

التسارع اعتقد هو ايضا متجه .. اليس كذلك؟

بلي ، و تكون عمودية علي المسار(متجه السرعه) - لها مقدار و اتجاه

مثل السرعة التي تكون مماسة للمنحني tangent to the curve .

post-40521-1120837498.jpg

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#48

السلام عليكم

يا جماعة ما هى المشكلة

السيارة تمشى بسرعة غير منتظمة مضبوط؟

ولكن العجلة -acceleration- لتى تسير بها منتظمة أليس كذلك؟

طيب عايزين نعرف المسافة S اللى هتمشيها السيارة.

S = u*t + 0.5at^2

S هى المسافة U السرعة الابتدائية a هى العجلة t هو الزمن

وقد وضح الاستاذ أحمد صالح كيفية الحصول على الزمن

اتمنى ان يكون هذا الكلام صحيح وليس تخريف

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

الجزء اللى جاى مش متأكد منه حيث أنى خبرتى بالOPENGL قليلة

بعد الحصول على المسافة S أعتقد من الممكن استخدامه فى الدلة gltranslatef(.......);s

هل هذا الكلام صحيح.

لو كانت الرجولة بالشوارب لكان الصرصار أكثرنا رجولة.

#49
اقتباس
اتمنى ان يكون هذا الكلام صحيح وليس تخريف

هدوء هدوء ..

لامشكلة ولا حاجة ..

صحيح يا اخي ..

المسألة مش صعبة ..

لكن هناك مشاكل .. تواجهني .. ليس لها علاقة بالقانون نفسه ...

انا الان اجرب امور كثيرة .. لاستنتاج شي ...

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

القانون مفهوم ... وحليت عليه مسائل .. اكثر من عشرين مسألة .. : )

الدالة التي تزيح الجسم .. هي كما ذكرت ..glTranslatef ... لكن انا الا ن لم أبدأ بكتابة اي كود .

اخذت الفكرة .. واتضحت .. وهذا اللي اريده ..

بس .. وين المشكلة ..

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

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

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#50

السلام عليكم

عفواُ يا أخ شمرى فهمت غلط

لو كانت الرجولة بالشوارب لكان الصرصار أكثرنا رجولة.

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

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