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

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

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

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

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

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

دائما ننصح بالتعلم لغه فيجوال بيسك6 من msdn   وهي قرص مضغوط اصدرته مكروسفت فقط لشرح كل شيئ في فيجوال بيسك
دائما ننصح بالعودده الى الملف الشارح لمكتبه دايركت اكس8.(تنببيه..اذا تعلمت 8  فان  9  نفس 8  مع تحسينات رائعه)..اسمه directx8_vb.chm  تجده عند تحميل sdk  او تحمله وحده من النت
فالنبدا على بركه الله Sad
يوجد نوعين من التحكم  فيالمجسمات اذا كنت من مستعملي برنامج بلندر ستفهم المقصود.......
النوع الاول..لدينا مجسم موقعه 30 متر على محور x  اي  x=30....اذا اعطيت المجسم  قيمه 5 متر على محور x.....فان موقع المجسم يكون   x=5
النوع الثاني..move relative.لدينا مجسم موقعه 30 متر على محور x  اي  x=30....اذا اعطيت المجسم  قيمه 5 متر على محور x.....فان موقع المجسم يكون   x=30+5

التحريك والتحجيم يكون بالوحدات اي بالمتر ..اما التدوير يكون بنضام الزوايا  اما الراديان  او الديقري حيث...
Public Const PI = 3.14159
Public Const RAD = PI / 180
Public Const DEG = 180 / PI
اول ما تستعمل الدووال  فان النضام بالراديان...اذا اردت التحويل الى الديقري  اضرب *180/بي...سنضع الدوال في اخر الدرس......

لكل مجسم في الفضاء الثلاثي الابعاد حيز   او ماتريكس يمثل موقعه وحجمه ودرجه دورانه .. في الفضاء الثلاثي الابعاد
في مكتبه ديراكت اكس8  يوجد كلاس اسمه متريكس....حيث كل كل حيز او متريكس تجعله خاص بمجسم ما   يحتوي مجموعه من العناصر  ببعض الحسابات نحصل على موقع وحجم المجسم
المتريكس الواحد يحتوي بداخله على عناصر(m11,m12,,,,,,,,,,,etc)   كما في الصوره
تحرريك وتدوير وتحجيم المجسمات في الفضاء الثلاثي الابعاد Th?id=OIP.M62e4a5313b5ec158542c657de94a5b2bo0&pid=15
اذا قمت باضافه مجسم ..يجب ان تضيف له متريكس يحمل موقعه وحجمه ودرجه دورانه
نسميه مثلا ونعلن عنه هكذا  meshmatrix
dim meshmatrix as D3DMATRIX
الان نقوم بجعل هذا المتريكس خاص بهذا   المجسم بهذه الداله
D3DXMatrixIdentity meshmatrix
.....



1/دوال التحريك والتحجيم والتدوير للنوع الاول....

بالنسبه لموقع المجسم فان قيمه  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.  الصور تتشرح التحجيم ... هل يمكنك استنتاج التحجيم 
تحرريك وتدوير وتحجيم المجسمات في الفضاء الثلاثي الابعاد Pic24
الصوره تخبرنا بان حجم المجسم على محور 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
vb6 الى vb20
عضو
عضو

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

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

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

- مواضيع مماثلة

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