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

كيف أستطيع تحريك مجسم Mesh وتدويره و تكبير حجمه

بدأه crazy Programm2007er في 13 يوليو 2008 · 11 رد · 2,617 مشاهدة · في DirectX
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

كيف أستطيع تحريك مجسم mesh وتدويره و تكبير حجمه

أرجو أن يكون C# أو vb.net

مع الشكر

تم تعديل هذه المشاركة بواسطة crazy Programm2007er في 13 يوليو 2008 في 17:39

#2

http://www.chadvernon.com/blog/tutorials/directx9/

اتمني ان تفيدك هذه الدروس

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

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

#3

استخدم المصفوفات في d3dx

أنا لاأجيد استخدام c# أو vb

المهم أنا استخدم c++

الطريقة هي نفسها في كل لغات (على الأقل نفس الدوال)

D3DXMatrixRotationx

D3DXMatrixRotationY

D3DXMatrixRotationZ

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

x

y

z

D3DXMatrixTranslation

لتحريك الجسم

D3DXMatrixScaling

لتكبير حجمه وتصغيره

أرجو أن أكون أفدتك

#4
852147 كتب:
استخدم المصفوفات في d3dx

أنا لاأجيد استخدام c# أو vb

المهم أنا استخدم c++

الطريقة هي نفسها في كل لغات (على الأقل نفس الدوال)

D3DXMatrixRotationx

D3DXMatrixRotationY

D3DXMatrixRotationZ

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

x

y

z

D3DXMatrixTranslation

لتحريك الجسم

D3DXMatrixScaling

لتكبير حجمه وتصغيره

أرجو أن أكون أفدتك

أشكركم على الردود ولكن لم يفي بالغرض أي رد مع الأسف

بالنسبة للأخ أحمد صالح لقد وجدت فقط عن تحريك الvertex

#5
اقتباس
أشكركم على الردود ولكن لم يفي بالغرض أي رد مع الأسف

بالنسبة للأخ أحمد صالح لقد وجدت فقط عن تحريك الvertex

مرحبا اخي الكريم

ممكن لأنك محدد لغة c# أو vb

بالنسبة لسي ++ فكما تفضل الاخ 852147 بواسطة المصفوفات , ولكن يجب ان تراعي عملية الترتيب عند ضرب المصفوفات

llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#6

أسف على التأخر في الرد بسبب المشاكل في الإتصال بالإنترنت عندي

وأرجو من الأعضاء الذين يعرفون الإجابة عن الموضوع أن يعطوني مثال بسيط بلغة الC++

وشكرا

#7
		D3DXMatrixRotationY(&R,y);
		D3DXMatrixTranslation(&T,5.0f,5.0f,1.0f);
		D3DXMatrixScaling(&S,0.1f,0.1f,0.1f);
		W=S*R*T;
		Device->SetTransform(D3DTS_WORLD,&W);
llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#8
time1 كتب:
		D3DXMatrixRotationY(&R,y);
		D3DXMatrixTranslation(&T,5.0f,5.0f,1.0f);
		D3DXMatrixScaling(&S,0.1f,0.1f,0.1f);
		W=S*R*T;
		Device->SetTransform(D3DTS_WORLD,&W);

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

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

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

llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#10

السلام عليكم

بعد تنفيذ السطر

Device->SetTransform(D3DTS_WORLD,&W);

فان كافة اوامر الرسم التي سيتم رسمها ستتأثر بهذا السطر حتي يتم تغييره مرة اخري

لان D3D عبارة عن state machine لما يتم وضع state فيه فانها تظل مستخدمة حتي يتم تغييرها مرة اخري

لذلك يمكنك تطبيق ما سبق لكل مجسم في المشهد لتحرك كل مجسم كما تريد وتضعه في المكان المناسب ويمكنك وضع مصفوفة الوحدة Identity

كما ذكر الاخ time1 فانه يمكنك استعادة الوضع الاصلي برسم كافة المجسمات التالية بدءا من نقطة الاصل بدون اي دوران او تحجيم

Ahmed Ezz

Software Engineer

ezzelden.ahmed@yahoo.com

http://ahmedezz.110mb.com/

انما عمرك بأعمالك ، فكم تريد أن تعيش؟

#12

اذا كنت تفضل استخدام #C فأنصحك باستخدام Microsoft XNA Game Studio Express فيمكنك باستخدامه انشاء ألعاب على Windows, XBOX 360 و في النسخة الأخيرة من XNA يمكنك عمل ألعاب على Zune

بالنسبة لعمل Transformations أو Rotation باستخدام XNA فيمكنك عمل هذا بسهولة على الMesh باستخدام الMatrix class فهي تحتوي على جميع عمليات الrotation و الtransformation

Sr. Software Development Engineer
Hulu, LLC
My Blogs

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

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

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

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

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