تحرريك وتدوير وتحجيم المجسمات في الفضاء الثلاثي الابعاد

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

تحرريك وتدوير وتحجيم المجسمات في الفضاء الثلاثي الابعاد

مُساهمة  vb6 الى vb20 في السبت نوفمبر 26, 2016 7:59 am

السلام عليكم ااهل الديار المهجوره...ورحمه الله وبركاته..والصلاه والسلام على خير البريه

دائما ننصح بالتعلم لغه فيجوال بيسك6 من msdn   وهي قرص مضغوط اصدرته مكروسفت فقط لشرح كل شيئ في فيجوال بيسك
دائما ننصح بالعودده الى الملف الشارح لمكتبه دايركت اكس8.(تنببيه..اذا تعلمت 8  فان  9  نفس 8  مع تحسينات رائعه)..اسمه directx8_vb.chm  تجده عند تحميل sdk  او تحمله وحده من النت
فالنبدا على بركه الله Sad
لكل مجسم في الفضاء الثلاثي الابعاد حيز   او ماتريكس يمثل موقعه وحجمه ودرجه دورانه .. في الفضاء الثلاثي الابعاد
في مكتبه ديراكت اكس8  يوجد كلاس اسمه متريكس....حيث كل كل حيز او متريكس تجعله خاص بمجسم ما   يحتوي مجموعه من العناصر  ببعض الحسابات نحصل على موقع وحجم المجسم
المتريكس الواحد يحتوي بداخله على عناصر(m11,m12,,,,,,,,,,,etc)   كما في الصوره

اذا قمت باضافه مجسم ..يجب ان تضيف له متريكس يحمل موقعه وحجمه ودرجه دورانه
نسميه مثلا ونعلن عنه هكذا  meshmatrix
dim meshmatrix as D3DMATRIX
الان نقوم بجعل هذا المتريكس خاص بهذا   المجسم بهذه الداله
D3DXMatrixIdentity meshmatrix
.....



بالنسبه لموقع المجسم فان قيمه  x  ,y  z   هي ...
X = meshmatrix.m41
Y = meshmatrix.m42
z = meshmatrix.m43

لذالك هذه الداله صنعناها لتحريك المجسم ....

Sub set_Translation(X As Single, Y As Single, z As Single)
meshmatrix.m41 = X
meshmatrix.m42 = Y
meshmatrix.m43 = z
End Sub

اذا اردت جعل موقع المجسم  20 متر على محور اكس....
تعوض الداله هكذا.. 20,0,0 set_Translation

وهذه داله للحصول على موقع المجسم

Function get_Translation() As D3DVECTOR
get_Translation.X = meshmatrix.m41
get_Translation.Y = meshmatrix.m42
get_Translation.z = meshmatrix.m43
End Function



اذا اردت الحصول على موقع x  للمجسم تتكتب الداله هكذ
x=get_Translation.x

الصوره التاليه ماخوذه من ملف الشارح لمحرك دايركت اكس8 .directx8_vb.chm.  الصور تتشرح التحجيم ... هل يمكنك استنتاج التحجيم 

الصوره تخبرنا بان حجم المجسم على محور x y z هو......
x = meshmatrix.m11
y = meshmatrix.m23
z = meshmatrix.m35

لذالك هذه الداله صنعناها لتحجيييم المجسم ....

Sub set_scale(X As Single, Y As Single, z As Single)
meshmatrix.m11 = X
meshmatrix.m23 = Y
meshmatrix.m35 = z
End Sub
لذالك هذه الداله صنعناها للحصول عل حجم المجسم ....

Function get_scale() As D3DVECTOR

get_scale.x = meshmatrix.m11 
get_scale.y = meshmatrix.m23 
get_scale.z = meshmatrix.m35 
End function

هنا نتوقف ...ونكمل موضوعنا في وقت اخر Laughing Laughing

vb6 الى vb20
عضو
عضو

عدد المساهمات : 10
نقاط : 24
تاريخ التسجيل : 11/10/2016
الموقع : ahl-dz.almountadayat.com/f28-montada

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى