تحرريك وتدوير وتحجيم المجسمات في الفضاء الثلاثي الابعاد
صفحة 1 من اصل 1 • شاطر
تحرريك وتدوير وتحجيم المجسمات في الفضاء الثلاثي الابعاد
السلام عليكم ااهل الديار المهجوره...ورحمه الله وبركاته..والصلاه والسلام على خير البريه
دائما ننصح بالتعلم لغه فيجوال بيسك6 من msdn وهي قرص مضغوط اصدرته مكروسفت فقط لشرح كل شيئ في فيجوال بيسك
دائما ننصح بالعودده الى الملف الشارح لمكتبه دايركت اكس8.(تنببيه..اذا تعلمت 8 فان 9 نفس 8 مع تحسينات رائعه)..اسمه directx8_vb.chm تجده عند تحميل sdk او تحمله وحده من النت
فالنبدا على بركه الله
يوجد نوعين من التحكم فيالمجسمات اذا كنت من مستعملي برنامج بلندر ستفهم المقصود.......
النوع الاول..لدينا مجسم موقعه 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) كما في الصوره
اذا قمت باضافه مجسم ..يجب ان تضيف له متريكس يحمل موقعه وحجمه ودرجه دورانه
نسميه مثلا ونعلن عنه هكذا 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. الصور تتشرح التحجيم ... هل يمكنك استنتاج التحجيم
الصوره تخبرنا بان حجم المجسم على محور 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
هنا نتوقف ...ونكمل موضوعنا في وقت اخر
دائما ننصح بالتعلم لغه فيجوال بيسك6 من msdn وهي قرص مضغوط اصدرته مكروسفت فقط لشرح كل شيئ في فيجوال بيسك
دائما ننصح بالعودده الى الملف الشارح لمكتبه دايركت اكس8.(تنببيه..اذا تعلمت 8 فان 9 نفس 8 مع تحسينات رائعه)..اسمه directx8_vb.chm تجده عند تحميل sdk او تحمله وحده من النت
فالنبدا على بركه الله
يوجد نوعين من التحكم فيالمجسمات اذا كنت من مستعملي برنامج بلندر ستفهم المقصود.......
النوع الاول..لدينا مجسم موقعه 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) كما في الصوره
اذا قمت باضافه مجسم ..يجب ان تضيف له متريكس يحمل موقعه وحجمه ودرجه دورانه
نسميه مثلا ونعلن عنه هكذا 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. الصور تتشرح التحجيم ... هل يمكنك استنتاج التحجيم
الصوره تخبرنا بان حجم المجسم على محور 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
هنا نتوقف ...ونكمل موضوعنا في وقت اخر
vb6 الى vb20- عضو
- عدد المساهمات : 10
نقاط : 32
تاريخ التسجيل : 11/10/2016
الموقع : ahl-dz.yoo7.com/f28-montada
مواضيع مماثلة
» mouse pick...التقاط مجسم في الفضاء الثلاثي الابعاد .. من الشاشه بواسطه الفاره
» التعديل على المجسمات(modeling)
» التعديل على المجسمات(modeling)
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى