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

ترتيب عمليات الTranslate - Rotate - Scaleفي الماتركس .

مغلق
بدأه Abdullah.Alshammeri في 2 أغسطس 2007 · 5 رد · 1,161 مشاهدة · في قسم برمجة الألعاب و الرسوميات العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم :

قمت بعمل كلاس matrix ( بالاتسفادة من موقع بالنت ) .

الان انشأت Object .. أجريت فيه العمليات .. ثم احمل تلك المصفوفة في OpenGL ....

glLoadMatrix .

السؤال هنا .. هل يجب علي أن أرتب العلميات التالية :

Translate - Rotate - Scale .

لاني لو لم ألتزم بالترتيب تحصل نتائج غريبة , هل هذا عيب بالكود .. او يجب الترتيب .

أيضا .. هل يجب في كل مرة أستدعي Translate واخواتها .. أضرب المصفوفة .. بمصفوفة OpenGL حتى يحدث تغيير ... أو مو لازم ؟

في OpenGL .. كان كل بعد أي عمليه يصير فيه ضرب للمصفوفة .. بالتالي يحدث التغير .. بينما اللي رأيته في المحركات .. ما يضربون المصفوفة الا بعد انتهاء كل العمليات اللي أجريتها ,

السؤال الثاني .. بالنسبة للكود الموجود داخل Translate و Rotate .... هل يجب أعمل Identity في أول الدالة .. يعني كذا :

Translate()

{

identity()

.

.

.

}

رأيت بعض الاكواد يعملون identity في كل مرة .. !!!

أتمنى المساعدة .

GL_Matrix.zip

تم تعديل هذه المشاركة بواسطة الشمري في 2 أغسطس 2007 في 11:34

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

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

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#2

و عليكم السلام ،

يجب الترتيب و ذلك لان ضرب المصفوفات ليس ابدالي AB ! = BA

اقتباس
.. هل يجب في كل مرة أستدعي Translate واخواتها .. أضرب المصفوفة .. بمصفوفة OpenGL حتى يحدث تغيير ... أو مو لازم ؟

في OpenGL .. كان كل بعد أي عمليه يصير فيه ضرب للمصفوفة .. بالتالي يحدث التغير .. بينما اللي رأيته في المحركات .. ما يضربون المصفوفة الا بعد انتهاء كل العمليات اللي أجريتها ,

نعم و ذلك لان من ميزة المصفوفات التجميع ، تستطيع ضرب العديد من الصفوفات و تخزين الناتج في مصفوفة نهائية و لكن بشــرط ضرب المصفوفات اي يجب ان يكون m ×n = n×m من حيث رتبة المصفوفة .

السؤال الثاني .. بالنسبة للكود الموجود داخل Translate و Rotate .... هل يجب أعمل Identity في أول الدالة .. يعني كذا

Identity يعني مصفوفة الوحدة في الجبر الخطي ، مشابهه للرقم 1 في الجبر العددي ، الضرب عليها يساوي ""نفس المركبات التي ضُرب فيها" .

مثال

A =  |  1 0 0 | 
	   |   0 1 0 | 
	   |  0  0 1 |

عند ضرب المصفوفة مثلا بصفوفة ازاحة سيتغير الاحداثيات الثلاثة X,Y,and Z بمقدار مركبات مصفوفة الازاحة .

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

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

#3

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

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

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

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#4

:lol: مرحبا بالإخوة

:( هل تستطيعون مساعدتي :(

في

(الTranslate - Rotate - Scaleفي الماتركس )

ولكن ليس في

3D

بالأريده في

GDI+

Microsoft Visual Basic 2005

وهو تدوير أو تكبير أو تحريك أي جزء من الصورة مثل برنامج الرسام

أرجو المساعدة منكم

وشكرا :lol:

تم تعديل هذه المشاركة بواسطة crazy Programm2007er في 18 أغسطس 2007 في 07:38

#5

اخي راجع فصل الجبر الخطي في كتاب المرشد الكامل ، و ستعرف كيف تُطبق المصفوفات علي الاجسام لعمل نقل محاور للمجسمات .

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

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

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

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

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

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

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

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

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